[ruby-list:47293] Re: [ruby-list:47292] Re: 改行やタグを含むデータをmysqlでinsertするには

From: Moru <lateau@...>
Date: 2010-08-11 13:49:09 UTC
List: ruby-list #47293
もると申します。

永遠なビギナーですが。。。

DBによって違うと思いますがhtmlのタグの場合は、まずエスケープをさせた方がいいかも知れません。
そして、クエリの発行と同時に(その前でも構いません)rubyかDB側でバインドをさせるという感じではないかと思います。

エスケープの場合はDBによってはエラーを吐き出すこともあるので、プログラムの仕様と効率を考えて実装すればいいでしょう。
postgresなどはtextを挿入する際に頭にEをつけることで、どんなデータでもテキストとしてprefixすることができます。
多分、mysqlでも同じような機能はついていると思います。

ご参考までに。

--
Moru DRS



2010/8/11 田口 浩 <h-taguchi@secom.co.jp>:
> たまーに投稿する田口ともうします。
>
> rubyを良く知らないのですが、データをそのまま使って
> SQL文を組み立てるのは、引用符その他のハンドリングで
> 大変なだけでなく、SQLインジェクションの温床となりますので、
> プレースホルダ、とかデータバインドなどと呼ばれる方法を
> 使ったほうが良いです。
> SQL文を、
> insert into hogetable(hogecolumn) values(?)
> とし、?にデータを指定してSQLを実行します。
> rubyでのやり方が判りませんが、多くの言語でこれが可能です。
>
> --
> Regards,
> h-taguchi
>
>> -----Original Message-----
>> From: Yosuke Suzuki [mailto:yosuke.suzuki@gmail.com]
>> Sent: Wednesday, August 11, 2010 5:27 PM
>> To: ruby mailing list
>> Subject: [ruby-list:47290] 改行やタグを含むデータをmysqlでinsertするには
> ...
>> このとき、カラムのデータ型がtext型で、「ああああ」となっている部分が
>> 改行を含む文章のときは、どのように処理するのがよいのでしょうか。
>> また文章中にはhtmlタグのような文字列も入ってきます。
>
>

In This Thread