PEAR::MDB2で、空文字列が勝手にNULL扱いになってしまう問題について
なんだか知らないがそういう挙動をする。
Oracleがそういう風に動くのは知っているが、使っているのはMySQLだ。
調べたら、MDB2ではデフォルトで「空文字列をNULL扱いにする」という機能が有効になっているらしい。
それを抑制するには connectなりfactoryなりに渡せるオプションビット群から MDB2_PORTABILITY_EMPTY_TO_NULLを外す。
いくら NULLと空文字列の区別も付かないPHPプログラマが多いからといってこんなデフォルトやめてください。
Oracleがそういう風に動くのは知っているが、使っているのはMySQLだ。
調べたら、MDB2ではデフォルトで「空文字列をNULL扱いにする」という機能が有効になっているらしい。
それを抑制するには connectなりfactoryなりに渡せるオプションビット群から MDB2_PORTABILITY_EMPTY_TO_NULLを外す。
$options = array(
'portability' =>
MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_EMPTY_TO_NULL,
);
$mdb2 =& MDB2::factory(
"mysql://{$User}:{$DBpass}@{$host}/${DBname}",
$options);
いくら NULLと空文字列の区別も付かないPHPプログラマが多いからといってこんなデフォルトやめてください。

0 件のコメント:
コメントを投稿
<< ホーム