mysql:7600
From: "KAWAI,Takanori" <"KAWAI,Takanori" <GCD00051@xxxxxxxxxx>>
Date: Sat, 26 Apr 2003 23:42:39 +0900
Subject: [mysql 07600] Re: クォーテーションの扱いについて
川合孝典です。 ----- Original Message ----- From: "aimitsu katoh" <akimitsu@xxxxxxxxxx> To: <ml@xxxxxxxxxx> Sent: Friday, April 25, 2003 8:21 PM Subject: [mysql 07596] クォーテーションの扱いについて > katohです。 > > Perl+DBI+MySQL+HTMLでCGIプログラムを制作しているのですが、 > クォーテーション【"】の扱いについて質問します。 > 今 PerlでデータベースにINSERTする時は次のように記述しています。 > > ##### (データベースへはconnect済み、エラー処理は記述していません) > $no=150; $text='text_text'; > $sql=qq{INSERT tb_A SET id_no=$no,user_name="$text"}; > $sth = $dbh->prepare($sql); > $rt_value=$sth->execute(); > ##### (以下略) ""じゃなくて、シングルクォートで囲んで $text='Kawai "Hippo2000" Takanori'; $dbh->do(qq{INSERT tb_A SET id_no=$no, user_name='$text'}); みたいにするというのは新たに「シングルクォートが入っているとき」の 対応が必要になるわけですが... quoteというメソッドがありますから $text=$dbh->quote('Kawai "Hippo2000" Takanori'); $dbh->do(qq{INSERT tb_A SET id_no=$no, user_name="$text"}); とすることもできます。 ただし、どっちがよいかといえばプレースホルダを利用する菅原さんの 方法のほうがよいかと思います。 PS. ついでに、どうもmyが見当たらないのですが、DBIではuse strict;を 利用することは"strongly recommended"です。 きちんと変数を宣言して利用することを強くお勧めします。 =================================================== 川合 孝典 (Hippo2000) DBI日本語メーリングリスト管理人、Kansai.pm所属 kwitknr@xxxxxxxxxx GCD00051@xxxxxxxxxx http://member.nifty.ne.jp/hippo2000、http://www.hippo2000.info/ perldocの日本語化ならperldocjp:翻訳してみませんか? http://sourceforge.jp/projects/perldocjp ===================================================
7596 2003-04-25 20:21 [aimitsu katoh <akimi] クォーテーションの扱いについて 7597 2003-04-25 20:45 ┣[SUGAWARA Hajime <sug] 7598 2003-04-25 23:03 ┃┣[とみたまさひろ <tomm] 7605 2003-04-28 11:17 ┃┃┗[SUGAWARA Hajime <sug] 7599 2003-04-26 17:06 ┃┗[Katoh Akimitsu <akim] -> 7600 2003-04-26 23:42 ┗["KAWAI,Takanori" <GC] 7602 2003-04-27 05:28 ┗[Katoh Akimitsu <akim] 7603 2003-04-27 09:16 ┗["KAWAI,Takanori" <GC] 7604 2003-04-27 16:12 ┗[Katoh Akimitsu <akim]