php PDO将值与SQL中的现有值相加/求和

crcmnpdw  于 2022-12-10  发布在  PHP
关注(0)|答案(1)|浏览(116)

我有一个字段为5,想加上2,使总数为7,但出现错误:
致命错误:未捕获的错误:调用中未定义的方法PDO::execute()...
我的代码是:

$statement = $connection->execute("
UPDATE ws_quantities 
SET quantity = quantity + :qty 
WHERE product_id = :product_id AND store_id = :store_id
");
$result = $statement->execute([
    'qty'           =>  $_POST["qty"], 
    'product_id'    =>  $_POST["product_id"], 
    'store_id'      =>  $_POST["store_id"] 
]);

我是不是错过了什么!

5lhxktic

5lhxktic1#

这看起来像是在$connection对象而不是$statement对象上调用execute方法。PDO::execute方法是用来执行一个预处理语句的,而不是用来执行SQL查询的。
请尝试以下操作:

$query = "UPDATE ws_quantities  SET quantity = quantity + :qty WHERE product_id = :product_id AND store_id = :store_id";

$statement = $connection->prepare($query);
$result = $statement->execute([
    'qty'           =>  $_POST["qty"], 
    'product_id'    =>  $_POST["product_id"], 
    'store_id'      =>  $_POST["store_id"] 
]);

在这段代码中,$query变量包含SQL查询作为字符串。$connection-〉prepare方法用于从查询创建一个预准备语句,$statement-〉execute方法用于使用给定的参数值执行预准备语句。
请注意,这只是一个示例,在SQL查询中使用用户输入之前,正确地验证和清理用户输入始终是一个好主意。

相关问题