1

我正在使用 PDOrowCount()来了解UPDATE是否成功。问题是rowCount() 在查询成功但没有要更新的行的情况下不返回任何内容。

这对我不利,因为在这种情况下,我运行 anINSERT并且 mysql 返回重复键的错误。

在 PDO 中知道查询是否成功的最佳方法是什么,在这种特定情况下,意味着UPDATE即使没有行受到影响,何时成功?

谢谢

4

2 回答 2

2

这是“XY问题”的完美案例。但幸运的是,您设法解释了您的真正问题以及主要问题。你实际上不需要rowcount()在这里。

你真正需要的是一个 mysql 特定的INSERT .. ON DUPLICATE KEY UPDATE查询

哪个将根据记录是否存在插入或更新记录。

于 2013-07-16T10:22:51.793 回答
-1

用于$stmt->execute() === true测试查询是否成功。

用于$stmt->rowCount() > 0查看是否有任何更新。

例如:

if( $stmt->execute() === true && $stmt->rowCount() > 0 )
于 2013-07-16T10:24:50.693 回答