MDB2内部ではこんな風になってるらしい。pg_prepare()関数があれば、それを使うpg_prepare()がなくて、PostgreSQLがPREPARE構文をサポートするなら、pg_query()でPREPARE構文を使用するそれもだめなら、MDB2でエミュレートで、問題はこの2番目。pg_query()関数を使って、PREPARE/EXECUTE構文をSQLとして発行する場合、pg_affected_rows()関数が影響行数を返さないんじゃないか疑惑浮上。(MDB2のexecute()メソッドの返値は、追っかけると最終的にpg_affected_rows()関数を呼び出しているので)そこで実験。は正しいDB接続文字列を格納した定数とする。pg_affected_rows($res);var_dump($affectedRows);出力結果:int(0)ビンゴだ。わかったことを整理すると。pg_affected_rows()関数は、PREPARE/EXECUTE構文をpg_query()関数で直接呼び出した場合には、影響行数を返さず、常に0を返すMDB2は、pg_prepare()が使えないと、PREPARE/EXECUTE構文を使おうとする。これが原因で、AffectedRowsが取得できなかったのか。これはもう少し深いところ追いかけないとわからなそうだ。