mysql:8169
From: SUGAWARA Hajime <SUGAWARA Hajime <sugawara@xxxxxxxxxx>>
Date: Fri, 29 Aug 2003 10:27:16 +0900
Subject: [mysql 08169] Re: MYSQL UPDATEで「?」を書込と「 NULL 」に化ける
菅原です。 "山内" <GEG03466@xxxxxxxxxx>さんは書きました: > ■環境 mysql v1.4 for win2000,win/xp、PERL 5.0 > ■現象 > (1)PERLアプリからdb項目 commentを下記sqlでアップデート > update bbs_db_tbl set comment = "?" where cnt=35; > (半角の?です) どういうコードでUPDATEしているのか書いていただかないと原因が分かりませ ん。 Perl+DBIを使っていて、 my $sth = $dbh->prepare( q{ UPDATE bbs_db_tbl SET comment="?" WHERE cnt=35 }); $sth->execute(); のように書いているのであれば、「?」はプレースホルダとして扱われます。 このときexecuteの引数に何も書かれてませんので「undef=NULL」として扱わ れますから、 UPDATE bbs_db_tbl SET comment="NULL" WHERE cnt=35 というSQLが発行されます。 (なので、このNULLは文字列としての"NULL"です) 「?」にしたいのであればexecuteの引数に $sth->execute('?') のように書くようにします。 (あるいはdoメソッドを使っても良いですが、個人的にはオススメしません) 詳しくはDBIのドキュメントをお読みください。 #何を読んでコードを書いたんだろう……。 -- 菅原はじめ@ホビー・データ sugawara@xxxxxxxxxx
8165 2003-08-28 23:46 ["山内" <GEG03466@xxx] MYSQL UPDATEで「?」を書込と「 NULL 」に化ける 8167 2003-08-29 09:10 ┣[きたぢま <kitajima@x] 8168 2003-08-29 09:32 ┣[Shinichi Maruyama <m] -> 8169 2003-08-29 10:27 ┣[SUGAWARA Hajime <sug] 8175 2003-08-30 06:17 ┃┗["KAWAI,Takanori" <GC] 8176 2003-08-30 11:16 ┃ ┣["山内" <GEG03466@xxx] 8177 2003-08-30 21:58 ┃ ┃┗["KAWAI,Takanori" <GC] 8181 2003-09-01 12:19 ┃ ┗[SUGAWARA Hajime <sug] 8174 2003-08-30 00:59 ┗["山内" <GEG03466@xxx]