首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wamp,MYSQL和ON重复键更新不会影响正确的行数?

Wamp,MYSQL和ON重复键更新不会影响正确的行数?
EN

Stack Overflow用户
提问于 2012-06-18 06:24:22
回答 1查看 409关注 0票数 0

我有一条mysql ON DUPLICATE KEY UPDATE语句正在成功运行。

虽然在手册中说,对于插入的行,受影响的行是1,更新的行是2。我想我可以通过简单的操作来计算出插入的行数;

代码语言:javascript
复制
$i = count($insert); // the insert array
// execute the query here
$inserted = ($i * 2) - $q -> rowCount();

等于$inserted的等式返回插入的行数(根据mysql)。

虽然在我的笔记本电脑上运行wamp,但当只插入重复的值时,我得到的行数为0!为什么会这样呢?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-18 10:23:52

rowCount()函数只返回1或2,表示update或insert。使用ON DUPLICATE KEY UPDATE意味着,如果执行多次插入/更新,就无法知道有多少行受到了影响。

在您的实例中,可能得到的行数为0,因为如果您使用相同的值进行更新,则返回值为0(即没有变化)。comment on the PHP manual建议您可以将PDO属性PDO::MYSQL_ATTR_FOUND_ROWS添加到true,以获取更新查询实际找到/匹配的行数。

例如。

代码语言:javascript
复制
$p = new PDO($dsn, $u, $p, array(PDO::MYSQL_ATTR_FOUND_ROWS => true));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11075275

复制
相关文章

相似问题

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