gpt4 book ai didi

php - 更新查询在具有多个 where 子句的准备好的语句中不起作用

转载 作者:行者123 更新时间:2023-11-29 16:16:52 24 4
gpt4 key购买 nike

我有以下更新语句,该语句确实执行成功,但表中的值没有更改。

 $name = "John Doe"; //to update into John Stack
$chenna = "Mz"; $reg = 25; $km = 3;
$dbh = PDO Object

$stmt = $dbh->prepare("UPDATE `hl_customer` SET `name`=:hming, `address`=:chenna
WHERE `regd`=:regd AND `kum`=:km");
$stmt->bindParam(':hming', $name, PDO::PARAM_STR);
$stmt->bindParam(':chenna', $hmun, PDO::PARAM_STR);
$stmt->bindParam(':regd', $reg, PDO::PARAM_INT);
$stmt->bindParam(':km', $km, PDO::PARAM_INT);
$stmt->execute();
$affected = $stmt->rowCount();

另一个经过测试的代码:

 $stmt = $dbh->prepare("UPDATE `hl_customer` SET `name`=?, `address`=?
WHERE `regd`=? AND `kum`=?");
$stmt->execute([$name, $hmun, $reg, $km]);
$affected = $stmt->rowCount();

$stmt = $dbh->query("UPDATE `hl_customer` SET `name`='$name', `address`='$chenna'
WHERE `regd`='$reg' AND `kum`='$km'");

为了更新,我不断更改 $name 变量,但没有受影响的行。行数总是返回0。我在phpmyadmin(最新版本)和mysql Workbench(最新)中进行了测试,问题仍然存在。然后我在mysql控制台再次测试,它按预期工作。但为什么它在上面显示的代码、phpmyadmin 和 workbench 中不起作用。可能是什么问题呢?我的代码有错吗?我使用 mysql 8.0.12、php 5.6.* 和 php 7.1.*。我在没有参数化查询的情况下再次测试了它,但它仍然不起作用。现在我开始认为这是php中的一种错误。谢谢

最佳答案

好吧,我没有发现您的代码有任何问题,请尝试验证表中的列数是否与您拥有的参数数量匹配,因为您说当您删除最后一个参数时它会起作用

关于php - 更新查询在具有多个 where 子句的准备好的语句中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54714853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com