首页 文章

MySQL在上次更新查询期间获取找到的行数(不一定受影响)

提问于
浏览
0

我想识别没有更新任何内容的UPDATE查询,因为没有要更新的匹配行(而不是因为该行包含完全相同的值)

AFAIK rowCounts将返回上次查询期间受影响的行数,我想知道找到了多少匹配的行 . 我注意到MySQL工作台显示了这一点,所以我猜测有一种方法却无法找到它 .

我正在使用PDO .

2 回答

  • 1

    此信息是not available in PDO .

    虽然本机mysql应用程序可以从驱动程序获取此类信息(请参阅mysqli_info()),但在PDO中此类信息不可用 .

    您所能做的就是将 PDO::MYSQL_ATTR_FOUND_ROWS 设置为连接选项,但是's far from being reliable as in such a case you won' t获取实际更新的行数 .

    因此,为了得到你的数字,我只需运行具有相同条件的SELECT查询 .

  • 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
    ));
    

相关问题