溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP怎么使用mysqli_real_escape_string()函數(shù)

發(fā)布時(shí)間:2021-06-07 09:49:48 來源:億速云 閱讀:245 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“PHP怎么使用mysqli_real_escape_string()函數(shù)”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“PHP怎么使用mysqli_real_escape_string()函數(shù)”這篇文章吧。

PHP如何使用mysqli_real_escape_string()函數(shù)?

mysqli_real_escape_string()函數(shù)是PHP中的內(nèi)置函數(shù), 用于轉(zhuǎn)義所有特殊字符以用于SQL查詢。在將字符串插入數(shù)據(jù)庫之前使用它, 因?yàn)樗鼊h除了可能干擾查詢操作的任何特殊字符。

當(dāng)使用簡單的字符串時(shí), 它們中可能包含特殊字符, 例如反斜杠和撇號(hào)(尤其是當(dāng)它們直接從輸入了此類數(shù)據(jù)的表單中獲取數(shù)據(jù)時(shí))。這些被認(rèn)為是查詢字符串的一部分, 并且會(huì)干擾其正常運(yùn)行。

<?php
  
$connection = mysqli_connect(
     "localhost" , "root" , "" , "Persons" ); 
         
// Check connection 
if (mysqli_connect_errno()) { 
     echo "Database connection failed." ; 
} 
   
$firstname = "Robert'O" ;
$lastname = "O'Connell" ;
   
$sql ="INSERT INTO Persons (FirstName, LastName) 
             VALUES ( '$firstname' , '$lastname' )";
   
   
if (mysqli_query( $connection , $sql )) {
      
     // Print the number of rows inserted in
     // the table, if insertion is successful
     printf( "%d row inserted.n" , $mysqli ->affected_rows);
}
else {
      
     // Query fails because the apostrophe in 
     // the string interferes with the query
     printf( "An error occurred!" );
}
   
?>

在上面的代碼中, 查詢失敗, 因?yàn)槭褂胢ysqli_query()執(zhí)行撇號(hào)時(shí), 會(huì)將撇號(hào)視為查詢的一部分。解決方案是在查詢中使用字符串之前使用mysqli_real_escape_string()。

<?php
   
$connection = mysqli_connect(
         "localhost" , "root" , "" , "Persons" ); 
  
// Check connection 
if (mysqli_connect_errno()) { 
     echo "Database connection failed." ; 
} 
       
$firstname = "Robert'O" ;
$lastname = "O'Connell" ;
   
// Remove the special characters from the
// string using mysqli_real_escape_string
   
$lastname_escape = mysqli_real_escape_string(
                     $connection , $lastname );
                      
$firstname_escape = mysqli_real_escape_string(
                     $connection , $firstname );
   
$sql ="INSERT INTO Persons (FirstName, LastName)
             VALUES ( '$firstname' , '$lastname' )";
  
if (mysqli_query( $connection , $sql )) {
      
     // Print the number of rows inserted in
     // the table, if insertion is successful
     printf( "%d row inserted.n" , $mysqli ->affected_rows);
}
   
?>

輸出如下:

1 row inserted.

以上是“PHP怎么使用mysqli_real_escape_string()函數(shù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI