Php mysql 查询更新数据给出语法错误

问题描述 投票:0回答:3

这是我的 php 代码,用于更新数据库中的产品:

$sql="UPDATE product SET name=$newname , price=$price , stock=$stock , color=$color WHERE id=$id";
if($conn->query($sql)){
    echo "product update";
}

它给出了这个错误:

Error: UPDATE product SET name=samsung galaxy note 20 ultra , price=40000 , stock=5 , color=white WHERE id=1
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'galaxy note 20 ultra , price=40000 , stock=5 , color=white WHERE id=1' at line 1
php mysql sql-update syntax-error
3个回答
1
投票

这段代码应该可以工作:

$sql="UPDATE product SET name='$newname', price='$price', stock='$stock', color='$color' WHERE id='$id';";

但是更好的方法是使用参数化准备好的语句,因为您现在很容易受到 SQL 注入的攻击。另请参阅:https://dev.mysql.com/doc/apis-php/en/apis-php-mysqli.quickstart.prepared-statements.html


1
投票

将单引号放入具有这样的字符串值的变量

$sql="UPDATE product SET name='$newname' , price='$price' , stock=$stock , color='$color' WHERE id=$id";

0
投票

请尝试此代码。

$sql = "UPDATE product SET name='$newname', price=$price, stock=$stock, color='$color' WHERE id=$id";
if ($conn->query($sql)) {
    echo "Product updated";
}
© www.soinside.com 2019 - 2024. All rights reserved.