gpt4 book ai didi

php - PDO/MySQL rowCount 未按预期返回

转载 作者:可可西里 更新时间:2023-11-01 06:49:04 26 4
gpt4 key购买 nike

回答后编辑:我认为这是我自己代码中的错误——我不知道它是什么,但我着手修复它。请参阅下面的答案。

我正在使用 MySQL/PHP 执行一系列 INSERT ... ON DUPLICATE KEY UPDATE 语句。我读过的文档表明此行数将返回:

-1 : an error
0 : update, no changes to row made (i.e. all values duplicated)
1 : row inserted
2 : update performed on row with duplicate key

但是,在我应该看到 2 的地方我只看到了 0 的结果(因为我正在观察代码更新各种数据库值。)这是代码:

$stmt = $db->prepare('INSERT INTO sometable (`id`, `name`, `email`) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE `name` = ?, `email` = ? ;');

$stmt->execute( array ( $id, $name, $email, $name, $email ) );

$rc = $stmt->rowCount();
echo $rc;

$rc 总是出现 0 表示更新(即使值已明确更改)或 1(如预期的那样成功插入。)

我错过了什么? :)

最佳答案

尝试使用 MySQL 函数,如果它返回正确的结果,问题将是 PDO:rowCount()

$stmt = $db->prepare('INSERT INTO table (`id`, `name`, `email`) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE `name` = ?, `email` = ? ;');

$stmt->execute( array ( $id, $name, $email, $name, $email ) );

$rc = $db->query("SELECT ROW_COUNT()")->fetchColumn();
echo $rc;

关于php - PDO/MySQL rowCount 未按预期返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12169981/

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