php
  • mysqli
  • 2014-09-26 43 views 0 likes 
    0

    我是非常新的PHP和SQL,我剛剛在幾年前瞭解它,但停止它並不更新它。這是我必須獲取用戶信息(如用戶名和密碼)的舊代碼。從Mysql到Mysqli的一些變化

    $myemail= $_POST['myemail']; 
    $mypassword= $_POST['mypassword']; 
    
    $sql= "SELECT * FROM user WHERE myemail='".$myemail."' and mypassword='".$mypassword."'"; 
    $result=mysql_query($sql); 
    $count=mysql_num_rows($result); 
    
    if($count==1) 
        { 
        $_SESSION['username']=$username; 
        $_SESSION['logged-in'] = true; 
        header("location:index.php"); 
        exit; 
        } 
    

    至於它如何是以上,我使用的是MySQL。我想學習如何將此代碼更改爲mysqli。我從ws3school學會它,只得到這樣的:

    mysqli_query($con,"SELECT * FROM user"); 
    

    但我卡住了,其餘的代碼如WHERE myemail='".$myemail."' and mypassword='".$mypassword."'";

    +0

    的問題是:你想要去準備好的語句或者只是改變此代碼庫MySQLi? – Naruto 2014-09-26 14:17:28

    +0

    你能把我帶到他們兩個嗎? :) – 2014-09-26 14:20:44

    +0

    與準備好的語句!您當前的腳本**非常容易受到影響 – FrancescoMM 2014-09-26 14:24:08

    回答

    0

    基本上你可以離開它就是是的,但拉連接in。

    MySQLi(改進版)仍然使用相同的SQL語句,因此您仍然可以動態構建它們。你只需要精確地指定要使用

    $sql = "SELECT * FROM user WHERE myemail='".$myemail."' and mypassword='".$mypassword."'"; 
    $result=mysql_query($con, $sql); 
    

    注意,你也可以寫的第二行就是這樣,看起來有點整潔,特別是如果你的代碼的其餘部分是面向對象的哪個連接。

    $result = $con->query($sql); 
    
    2

    隨着mysqli你必須準備查詢,這些信息可以在文檔中找到。

    下面是一個例子:

    <?php 
    $mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 
    
    /* check connection */ 
    if (mysqli_connect_errno()) { 
        printf("Connect failed: %s\n", mysqli_connect_error()); 
        exit(); 
    } 
    
    $myemail= $_POST['myemail']; 
    $mypassword= $_POST['mypassword']; 
    
    $sql= "SELECT * FROM user WHERE myemail = ? and mypassword = ?"; 
    /* create a prepared statement */ 
    if ($stmt = $mysqli->prepare($sql)) { 
    
        /* bind parameters for markers */ 
        $stmt->bind_param("ss", $myemail, $mypassword); 
    
        /* execute query */ 
        $stmt->execute(); 
    
        /* count */ 
        $count = $stmt->num_rows; 
    
        /* close statement */ 
        $stmt->close(); 
    } 
    
    /* close connection */ 
    $mysqli->close(); 
    
    if($count===1){ 
        //do something 
    } 
    

     相關問題

    • 暫無相關問題^_^