它不會更新數據庫中的一行 它只是一個語言更改系統,當我想到它是因爲轉義後字符串,然後我沒有傳遞給查詢字符串,它仍然不會工作 因此,這裏的代碼mysqli查詢不會更新
$whatlanguage = $_GET['languageoption'];
$sql = "UPDATE people SET language=bosanski WHERE id='$user_id'";
$_POST['settingsuccess'] = 1;
if (!mysqli_query($con, $sql))
{
echo "Error: " . mysqli_error($con);
}
錯誤
Error: Unknown column 'bosanski' in 'field list'
'語言= bosanski'這是一個字符串;像這樣對待它。 – 2015-02-06 17:24:09
那裏的$ whatlanguage是什麼?你不會在任何地方使用它,並且'$ user_id'永遠不會被定義......再加上,無條件地設置'settingsuccess'是無意義的。你應該只在你確認成功之後做到這一點。 – 2015-02-06 17:26:03
**使用外部變量構建SQL語句會使您的代碼容易受到SQL注入攻擊。**此外,任何帶有單引號的輸入數據(如「O'Malley」)都會炸掉您的查詢。瞭解參數化查詢,最好使用PDO模塊來保護您的Web應用程序。 [這個問題](http://stackoverflow.com/questions/60174)有很多詳細的例子。另見http://bobby-tables.com/php查找危險的替代品和解釋。運行使用外部數據構建的SQL代碼就像在家門口發現用成分製成的湯一樣。 – 2015-02-06 17:28:59