我正在使用 PDOrowCount()来了解UPDATE是否成功。问题是rowCount() 在查询成功但没有要更新的行的情况下不返回任何内容。
这对我不利,因为在这种情况下,我运行 anINSERT并且 mysql 返回重复键的错误。
在 PDO 中知道查询是否成功的最佳方法是什么,在这种特定情况下,意味着UPDATE即使没有行受到影响,何时成功?
谢谢
这是“XY问题”的完美案例。但幸运的是,您设法解释了您的真正问题以及主要问题。你实际上不需要rowcount()在这里。
你真正需要的是一个 mysql 特定的INSERT .. ON DUPLICATE KEY UPDATE查询
哪个将根据记录是否存在插入或更新记录。
用于$stmt->execute() === true测试查询是否成功。
用于$stmt->rowCount() > 0查看是否有任何更新。
例如:
if( $stmt->execute() === true && $stmt->rowCount() > 0 )