我正在使用PDO rowCount()
来了解UPDATE
成功与否。
问题是rowCount(
)在查询成功但没有要更新的行的情况下不返回任何内容。
这对我不利,因为在这种情况下我运行INSERT
并且mysql为重复的密钥返回错误。
在这种特定情况下,PDO知道查询是否成功的最佳方式是什么意味着,即使没有行受到影响,UPDATE
成功了?
由于
答案 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 )