我对更新查询感到有些困惑。我尝试了其他语法,但我仍然遇到相同的错误。
$itemName = mysql_real_escape_string($_POST['itemName']);
$itemDescription = mysql_real_escape_string($_POST['itemDescription']);
$itemCategory = mysql_real_escape_string($_POST['itemCategory']);
if(isset($_POST['itemPrice']))
$itemPrice = mysql_real_escape_string($_POST['itemPrice']);
$statement = 'update products set "category = ' .
$itemCategory.', price = "'.
$itemPrice .'", product = "' .
$itemName . '", description = "' .
$itemDescription . '" where id = "' .
$itemId . '"';
if(mysqli_query($db, $statement))
{
$kittehHasError = false;
$message = $itemName . " has been updated successfully.";
}
else
{
$kittehHasError = true;
$message = "Something went wrong: " . mysqli_error($db);
}
<p><? echo $message ?></p>
我收到的错误是:
出了点问题:您的SQL语法出错了;检查 手册,对应右边的MySQL服务器版本 要使用的语法&#39;&#34; category = games,price =&#34; 60.75&#34;,product = &#34; Wildstar&#34;,description =&#34;正在进行&#39;在第1行
我做错了什么?我设置了断点,所有值都保存数据和正确的数据。所以我不确定为什么查询不起作用。我想也许是因为 description 包含单引号,但是,当添加MySQL_real_escape_string()时,我仍然会收到相同的错误。
答案 0 :(得分:2)
更改
$statement = 'update products set "category = ' .
$itemCategory.', price = "'.
到
$statement = 'update products set category = "'.
$itemCategory.'", price = "'.
答案 1 :(得分:0)
您的查询有问题。将您的代码替换为以下代码:
@x = map { $_ =~ s/\0//g; } @x;
$statement = 'update products set category = "' .$itemCategory.'",
price = "'. $itemPrice .'",
product = "' . $itemName . '",
description = "' . $itemDescription . '"
where id = "' . $itemId . '"';
之前你有一个不必要的逗号。我认为它应该属于价值部分。
尝试以上代码。