[PHP-users 29440] PDO_PGSQLでのbindParamの挙動について

KenjiMATSUO ml.kmatsuo @ gmail.com
2006年 6月 19日 (月) 18:47:16 JST


お世話になります。松尾といいます。

以下の環境にて Apache-PHP-PostgreSQLでPDOを利用した開発を
しているのですが、ある条件でDBから値を正常に取得出来ない
場合が有り困っております。

【環境】
Apache-2.0.58
PHP-5.1.4
PostgreSQL-8.1
pdo_pgsql-1.0.2

【内容】
SQLの中に日本語が入っている、かつbindParamを利用している場合に
DBから値を正常に取得出来ない。

例えば
$sql = "select case when id=1 then 'Value1' else 'Value2' end from test
where id= :id";
は正常に動作しますが、

$sql = "select case when id=1 then '値1' else '値2' end from test
where id= :id";
はエラーにはなりませんが、値は取得できていません。

また
$sql = "select case when id=1 then '値1' else '値2' end from test";

の場合は正常に動作しますので、bindParamが有る場合のみ何らかのエラーが
発生していると思われます。

初めは文字コードの設定に問題が有るのかと思い、色々な組み合わせ(SQL自体・
php.iniのマルチバイト関連の設定)を試しましたが状況は改善しませんでした。

どなたか同じような現象に遭遇された方、いらっしゃらないでしょうか?

以上、よろしくお願いいたします。

// Kenji Matsuo


PHP-users メーリングリストの案内