我有以下的PHP代碼查詢我的DB:SQL查詢失敗
<?php
include 'db_connect.php';
if($_SESSION['username'] != "admin")
{
header('Location: index.php');
}
$item_id = $_POST['item_id'];
$item_name = $_POST['item_name'];
$category = $_POST['category'];
$description = $_POST['description'];
$price = $_POST['price'];
$options = $_POST['options'];
echo $item_id . $item_name . $category . $description . $price . $options;
#the above line proves that everything is being posted properly
$query = "UPDATE ConnectionsMenu SET item_name=$item_name, category=$category, description=$description, price=$price, options=$options WHERE item_id=$item_id";
$result = mysqli_query($db, $query);
if(!$result)
{
die ("Invalid data entry: " . mysqli_error($db));
}
?>
,但我得到了以下錯誤: 您在您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第1行的'Drinks,description = sdfsd,price = 3333,options = WHERE item_id = 98'處使用正確的語法。
我不確定發生了什麼問題在這裏......我已經在另一頁成功地使用了完全相同的語法。任何建議將不勝感激!
你應該學會1. SQL語法。 2.編寫報表。 –
仔細閱讀錯誤信息,特別是'options = WHERE'。 – 2013-11-23 19:27:48
只有所有字段都是數字,或者變量本身已包含單引號字符串,完全相同的語法纔有效。無論哪種方式,你使用的是MySQLi,所以[開始瞭解準備好的語句](http://php.net/manual/en/mysqli.prepare.php)以避免此問題(以及通過SQL的相關安全問題注入) –