PHP PDO Update语句总是返回0行受影响的rowCount()
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP PDO Update语句总是返回0行受影响的rowCount()相关的知识,希望对你有一定的参考价值。
我知道这是一个noob问题,但由于某种原因,我的更新语句总是返回0的行数,无论单行还是多行因查询而改变。
使用标准的php和pdo编写的查询。经过测试的select语句,它们在返回rowCount
数字时工作正常。但更新不是那么多。这是我的代码。任何见解都会很棒。
$sql = "UPDATE token SET tokenkey = ? WHERE token_id = 1";
$r = $this->database->databaseConnections['core']->prepare($sql);
$r->setFetchMode(PDO::FETCH_ASSOC);
$data = "123123";
$res = $r->execute(array($data));
echo $r->rowCount();
我使用了相同的代码(但使用SELECT
),它将产生大于0的结果。我更改了数据变量,它执行,我在sql数据库中检查,它已成功更新。但是仍然行数为0尽管我可以在phpmyadmin中看到更新的行,如果我直接在phpmyadmin中运行sql,它会返回1个受影响的行。困惑。
我还检查了PDO
错误并且没有收到任何错误。
有关更多信息,我的pdo数据库连接器使用以下配置进行设置(忽略连接详细信息本身。
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$connection->exec('SET NAMES utf8');
提前感谢您的协助。
干杯,
Masbie
答案
经过多次搜索。不得不放松挫折,因此卸载了XAMPP服务器运行的所有痕迹。然后重新安装它。我之前使用的安装和版本相同。然后重新编写代码。而且,现在它的工作原理。看起来服务器基础中可能存在一些损坏。干杯
以上是关于PHP PDO Update语句总是返回0行受影响的rowCount()的主要内容,如果未能解决你的问题,请参考以下文章
这样的SQL语句(游标)为啥要被重复执行5次? (5 行受影响) (5 行受影响) (5 行受影响) (5 行受影响) (5