php
  • mysqli
  • 2012-06-06 69 views 4 likes 
    4

    在舊版本的MySQL()碼,串逃脫一個字符串,我這樣做:如何逃脫的mysqli

    t.TeacherUsername = '".mysql_real_escape_string($teacherusername)."' 
    

    我改變我的代碼庫MySQLi,但我想知道的肯定和是安全的,爲了逃避mysqli的字符串是這樣如下:

    t.TeacherUsername = '".mysqli_real_escape_string($teacherusername)."' 
    

    而且連接到mysqli的數據庫是這樣如下:

    $username="xxx"; 
    $password="xxx"; 
    $database="xxx"; 
    
    mysqli_connect('localhost',$username,$password); 
    
    mysqli_select_db($database) or die("Unable to select database"); 
    

    我所做的一切就是將mysql更改爲mysqli,是否正確?

    UPDATE:

    這是現在連接到數據庫中使用mysqli的正確方法:

    $username="xxx"; 
    $password="xxx"; 
    $database="mobile_app"; 
    
    $mysqli = new mysqli("localhost", $username, $password, $database); 
    
    if (mysqli_connect_errno()) { 
        printf("Connect failed: %s\n", mysqli_connect_error()); 
        exit(); 
    } 
    
    +0

    的可能重複(http://stackoverflow.com/questions/5200051/is-using-mysqli-real-escape-串足以對安全 - 我的查詢字符串) – JJJ

    回答

    4

    您使用的功能是不正確。

    您必須使用mysqli_connect返回的mysqli鏈接資源作爲mysqli_real_escape_string的第一個參數。

    例如:[?是用足夠的mysqli_real_escape_string,以確保我的查詢字符串]

    $username="xxx"; 
    $password="xxx"; 
    $database="xxx"; 
    
    $my = mysqli_connect('localhost',$username,$password); 
    
    mysqli_select_db($my, $database) or die("Unable to select database"); 
    
    $t->TeacherUsername = "'" . mysqli_real_escape_string($my, $teacherusername). "'"; 
    
    相關問題