PDO経由でMyISAMテーブルにトランザクションをかけると・・・?

PDO経由でトランザクションを使ったあるスクリプトで、途中でエラーになったのにも関わらず、そこまでのクエリがロールバックされない。きちんとbeginTransactionとrollback、commitを書いているのに何故!?・・・と思ってハマってしまった。

で、よくよく調べてみたら、テーブルを誤ってデフォルトのMyISAMで作成してしまっていた。そりゃトランザクションが効かないわけだ。でもMyISAM相手にbeginTransactionとかやってもエラーにならないとは・・・。PDOが吸収してくれちゃってるのかな? こういうときはエラー出してほしいな。

コメント

タイトルとURLをコピーしました