[前][次][番号順一覧][スレッド一覧]

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]