首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL读取在上次更新查询期间找到的行数(不一定受影响)

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

Stack Overflow用户
提问于 2017-03-06 16:59:37
回答 2查看 55关注 0票数 0

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

AFAIK rowCounts将返回上次查询过程中受影响的行数,我想知道找到了多少匹配的行。我注意到MySQL工作台显示了这一点,所以我猜有一种方法,但找不到。

我在用PDO。

EN

回答 2

Stack Overflow用户

发布于 2017-03-06 17:30:45

此信息为not available in PDO

尽管原生mysql应用程序可以从驱动程序中获得这样的信息(参见mysqli_info()),但是在PDO中,这些信息是不可用的。

您所能做的就是将PDO::MYSQL_ATTR_FOUND_ROWS设置为一个连接选项,但这并不可靠,因为在这种情况下,您将无法获得实际更新的行数。

因此,为了获得您的数字,我只需使用相同的条件运行一个SELECT查询。

票数 1
EN

Stack Overflow用户

发布于 2017-03-06 17:32:45

当您通过PDO连接到MySQL服务器时,您可以使用PDO::MYSQL_ATTR_FOUND_ROWS选项来获取匹配的返回记录数,而不是update语句更改的记录数:

代码语言:javascript
复制
$db = new PDO('mysql:dbname=yourdb;host=yourhosthost', 'username', 'psw', array(
    PDO::MYSQL_ATTR_FOUND_ROWS => true
));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42621348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档