0
我有一個MySQL查詢像下面PHP發送查詢數據庫,報價不工作
mysql_query("select * from user where name='$name' LIMIT 1");
如果想從客戶端我輸入「約翰」會有MySQL錯誤在我的查詢。 防止這種情況的最佳做法是什麼?
我有一個MySQL查詢像下面PHP發送查詢數據庫,報價不工作
mysql_query("select * from user where name='$name' LIMIT 1");
如果想從客戶端我輸入「約翰」會有MySQL錯誤在我的查詢。 防止這種情況的最佳做法是什麼?
首先,不推薦使用mysql_ *函數,而應該使用PDO或mysqli_。這兩個庫實現了準備好的語句,這些語句會自動避開您的輸入
如果你想使用mysql_ *代替,你必須調用mysql_real_escape_string
到通過VAR
mysql_query("select * from user where name='" . mysql_real_escape_string($name) . "' LIMIT 1");
嘗試:
$query = sprintf("select * from user where name='%s', mysql_real_escape_string($name));
$result = mysql_query($query);
確保$名稱中包含你認爲它(回聲它確認)。
什麼是你所得到的錯誤? – 2013-02-17 11:10:12
不要使用mysql_函數,因爲它們已被棄用,而是使用mysqli或PDO,將來會爲您節省很多麻煩 – 2013-02-17 11:11:48