我知道这是一个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
答案 0 :(得分:-1)
经过多次搜索。不得不放松挫折,因此卸载了XAMPP服务器运行的所有痕迹。然后重新安装它。我之前使用的安装和版本相同。然后重新编写代码。而且,现在它的工作原理。看起来服务器基础中可能存在一些损坏。 干杯