PDO rowCount()替代方案

时间:2013-07-16 10:17:19

标签: mysql pdo

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

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

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

由于

2 个答案:

答案 0 :(得分:2)

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

您真正需要的是特定于mysql的INSERT .. ON DUPLICATE KEY UPDATE查询

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

答案 1 :(得分:-1)

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

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

例如:

if( $stmt->execute() === true && $stmt->rowCount() > 0 )