我想识别没有更新任何内容的UPDATE查询,因为没有要更新的匹配行(而不是因为该行包含完全相同的值)
AFAIK rowCounts将返回上次查询期间受影响的行数,并且我希望获得找到的匹配行数。我已经注意到MySQL工作台显示了这一点,所以我猜测那里有一种方法但却无法找到它。
我正在使用PDO。
答案 0 :(得分:1)
此信息为not available in PDO。
虽然本机mysql应用程序可以从驱动程序获取此类信息(请参阅mysqli_info()),但在PDO中此类信息不可用。
您所能做的就是将PDO::MYSQL_ATTR_FOUND_ROWS
设置为连接选项,但它远非可靠,因为在这种情况下您将无法获得实际更新的行数。
因此,为了得到你的号码,我只需运行具有相同条件的SELECT查询。
答案 1 :(得分:0)
当您通过PDO连接到MySQL服务器时,可以使用PDO::MYSQL_ATTR_FOUND_ROWS选项来获取返回的匹配记录数,而不是更新语句更改的记录数:
$db = new PDO('mysql:dbname=yourdb;host=yourhosthost', 'username', 'psw', array(
PDO::MYSQL_ATTR_FOUND_ROWS => true
));