2014-10-17 54 views
0

我在查詢之前查詢了很多問題,並查看了很多問題。我在Dagon看到了這一點,但它沒有提到消毒功能。正如我所說我不是PHP專家,我不知道這是否會影響語法。對不起,重複。正確的語法? PHP - mysqli_real_escape_string和清理函數

我不是一個PHP專家,甚至不是一個頻繁的用戶,但我正在嘗試糾正一些客戶端的PHP代碼。我沒有寫這個代碼,我只是想解決這些錯誤。有人能指引我朝着正確的方向嗎?

錯誤代碼 -

PHP Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in /home5/tfgfouze/public_html/shop/shopping/index.php on line 62 

PHP代碼 -

function sanitize($var){ 
    return mysqli_real_escape_string(str_replace("`","\`", $var)); 
} 
+2

除了要清理的字符串外,'mysqli_real_escape_string()'還需要指向數據庫的鏈接。但是,建議您的客戶重構此代碼以使用[準備語句](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) – Crackertastic 2014-10-17 20:30:07

+2

的好處使用MySQLi時不要轉義,使用準備好的語句/綁定變量,它會爲你做 – 2014-10-17 20:32:19

回答

2

mysqli_real_escape_string需要說明過的PHP文件和錯誤

第一個參數應該是承載數據庫的變量有兩個參數連接
第二個參數應該是你想要清理的字符串
請注意我是如何表示字符串的,因爲mysqli_real_escape_string僅用於清理字符串。它不適用於sanitizng整數。

此外,我最大的建議是停止使用一般的清理功能,並開始使用準備好的語句。