我想识别没有更新任何内容的UPDATE查询,因为没有匹配的行要更新(而不是因为该行包含完全相同的值)
AFAIK rowCounts将返回上次查询过程中受影响的行数,我想知道找到了多少匹配的行。我注意到MySQL工作台显示了这一点,所以我猜有一种方法,但找不到。
我在用PDO。
发布于 2017-03-06 17:30:45
此信息为not available in PDO。
尽管原生mysql应用程序可以从驱动程序中获得这样的信息(参见mysqli_info()),但是在PDO中,这些信息是不可用的。
您所能做的就是将PDO::MYSQL_ATTR_FOUND_ROWS设置为一个连接选项,但这并不可靠,因为在这种情况下,您将无法获得实际更新的行数。
因此,为了获得您的数字,我只需使用相同的条件运行一个SELECT查询。
发布于 2017-03-06 17:32:45
当您通过PDO连接到MySQL服务器时,您可以使用PDO::MYSQL_ATTR_FOUND_ROWS选项来获取匹配的返回记录数,而不是update语句更改的记录数:
$db = new PDO('mysql:dbname=yourdb;host=yourhosthost', 'username', 'psw', array(
PDO::MYSQL_ATTR_FOUND_ROWS => true
));https://stackoverflow.com/questions/42621348
复制相似问题