PostgreSQL嵌りました。orzかなり特殊な状況ではあるのですが、同じ落とし穴に他の人が嵌らないよう、メモ。$sth->execute($data);var_dump($affectedRows);としても、出力がint(0)・・・なぜ!?データベースの中身はちゃんと更新されてるのに!!で、いろいろ調べてたら、なんか奇妙な事実が次々とでてきた。DML文はどれを実行しても(INSERT/UPDATE/DELETE)、0が返る。データベースもちゃんと更新されている。した場合はちゃんと取得できるこれはもう挙動を追うしかないなぁ。思い、MDB2のソースを探索。う〜ん・・・execute()もexec()も最終的に行き着くところ同じなんだ。すると、余計この2つで挙動が違うのか理解できない。PostgreSQLがPREPAREをサポートしてないバージョン?・・・いや、7.4からサポートだから、それは大丈夫なはず。PHPのpg_prepare()関数も、5.1以降だから条件は満たしてるはず。なんか妙に気になったので、試しにこのコードを実行してみた:<?phpvar_dump(function_exists('pg_prepare'));//出力結果//bool(false)・・・・はぁ!?.。ooO(゚ぺ/)/なぜ?なぜ?PHPもPostgreSQLもバージョン条件は満たしてるのに。<?phpvar_dump(function_exists('pg_execute'));var_dump(function_exists('pg_query_param'));//出力結果//bool(true)//bool(true)はへっ!?なんじゃこりゃ。(x_x)どうやら、pg_prepare()だけが使えない模様。う〜ん、これはどうもPHPのコンパイルオプションとか絡んでそうだな。あと、PostgreSQLのライブラリのインクルードがどうとか。そっちを追いかけるのは後にしてと。この、pg_prepare()が使えない、という前提で、もう一度MDB2をコードリーディング。