PDO::exec() メソッドで問題が発生しました。私はそれを1時間理解しようとしていますが、まだどこにも行きません. それはおそらく私が見逃している小さなものになるでしょう。
exec を使用して、データベース内の 1 つの行を更新 (および別のコードで削除) します。マニュアルによると、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');
上記のコードは、行が実際に更新されているにもかかわらず、Uncaught exception: Update statement affected 0 rows を出力します。
例外を除いてその行にコメントすると、すべて正常に実行されます (ただし、エラーを処理できません)。
誰も助けることができますか??
PS.: 私は Nette Framework を使用しているので、? を使用したクエリは有効です.. $entity の内容も有効です