質問: mysqlデータベースにinsertできない こんにちは。 現在、perlでmysqlにデータをinsertしているのですが、ある記号があった場合、挿入することが出来ません。 以下のようにしたところ、もし$titleや$komentoに「'」があった場合、insert文のシングルクオートと引っかかってるみたいです。 $dbh->do(qq|insert into suredo values ('$no','$title','$koment')|); そこで、今度は $dbh->do(qq|insert into suredo values ("$no","$title","$koment")|); とした場合、今度は「"」があった場合ダメみたいです。 このような場合、「’」や「”」があってもinsertできる様にするにはどのようにしたらよろしいのでしょうか? どのたかよろしくお願いします。
回答: sakusaker7 さんが書かれているのは多分、 do メソッドは使わずに、 prepare メソッドでプレースホルダを使ったステートメントハンドルを取得して、 それに execute メソッドで値をのせてやれば、クオート考えなくてもいいよって事だと思いますよ。 my $sth = $dbh->prepare("insert into your_table( foo, bar , baz ) values(?,?,?)"); $sth->execute( $foo , $bar , $baz ); >でもこれはdbiモジュールということになりますので、使えるかどうか・・・。 dbi使ってないんですか?