我有以下的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的相关安全问题注入) –