なのだが、慣れてないせいもあって、掲題のような変なことに時間を取られた。
受注情報を update する際に、複数ある主キーの1つに数値の 0 をセットしようとするとエラーになってしまう。
Column 'hogehoge_id' cannot be null
とか。試しにコマンドラインで打ってみても、phpMyAdmin でやってみても通る。仕方なしに数値の 0 だったときだけ文字の '0' に変えたところ update できた。・・・気持ち悪いが、調べても何が悪いんだかよく分からない。そして今度は受注情報を読み出すところで、なぜか読み出せない。select の条件として hogehoge_id が 0 のところが引っ張ってこれない。これまたコマンドラインだとちゃんと動く。やだもう。where条件のところを
select * from dtb_hanage where hogehoge_id = COALESCE(?,0)
として値がNULLだったら 0 が入るようにして動くようになった。これまた気持ち悪い。ということは、やはり 0 がどこかで NULL 扱いされるように変換されているということ。2.11.0 では同じような個所が問題なく動いているので、PEAR::DB の問題か、2.4.4 の問題か。コマンドラインでは問題ないので、MySQLのせいではなさそう。
まぁ、とにかく調べてもめぼしい情報が出てこない。もうPEAR::DBなんかやめちゃって、2.4.4 もやめちゃいなよ、ということですね。
0 件のコメント:
コメントを投稿