PHP PDO Update语句总是返回0行受影响的rowCount()

问题描述 投票:0回答:1

我知道这是一个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

php mysql database pdo rowcount
1个回答
-1
投票

经过多次搜索。不得不放松挫折,因此卸载了XAMPP服务器运行的所有痕迹。然后重新安装它。我之前使用的安装和版本相同。然后重新编写代码。而且,现在它的工作原理。看起来服务器基础中可能存在一些损坏。干杯

© www.soinside.com 2019 - 2024. All rights reserved.