我遇到了 PDO::exec() 方法的问题。我现在想弄清楚一个小时,但仍然无处可去。这可能是我缺少的一些小东西。
我使用 exec 更新(并在另一段代码中删除)数据库中的一行。根据手册, exec 应该返回受影响的行数。但在我的情况下(更新和删除),exec 运行,物理更新数据库,但仍返回 0。
这是我的更新语句代码(删除类似)
$data = Array(
'title' => $entity->getTitle(),
'subtitle' => $entity->getSubtitle(),
'text' => $entity->getText(),
);
$response = $this->conn->exec("UPDATE entries SET ? WHERE id = ?", $data, $entity->getId());
if($response <> 1) throw new Exception('Update statement affected '.$response.' rows');
上面的代码将输出未捕获的异常:更新语句影响了 0 行,即使该行实际上已更新。
如果我用异常注释该行,一切运行正常(但我无法处理错误)。
有人可以帮忙吗??
PS.:我使用的是 Nette Framework,所以带有 ?'s 的查询是有效的.. $entity 的内容也是有效的