January 10, 2004

Class::DBI % thing

のみまくし日記 - 2004/01/09

Cladd::DBI ? なのかどうか追ってないし、疲れたし、帰りたいし。意味不明だし。
ともかく、SQLで DATE_FORMAT(datetime, '%Y-%m-%d') っていうSQLを渡したいんだけど、 結果が 2004-01-0 になっちゃっておかしー。
DATE_FORMAT(datetime, '%Y-%m-%%d') としたら上手くいった。
詳しく追うかなーとおもったけど疲れたし、帰りたいし、さっきも言ったし。

それは Class::DBI のせいっすね。
set_sql で作る場合 sprintf を通るので、SQL につかう % は %% とダブルエスケープしないとだめです。

Ima::DBI の perldoc に

To make up for the limitations of bind parameters, $statement can contain sprintf() style formatting (ie. %s and such) to allow dynamically generated SQL statements (so to get a real percent sign, use '%%'). See sql_* below for more details.

てな具合にあります。(普通わかんないけど)

Posted by miyagawa at January 10, 2004 02:10 AM | Permalink | Comments (0) | TrackBack(1)
Comments
Trackbacks
TrackBack URL for this entry: http://blog.bulknews.net/mt3/mt-tb.cgi/699
Pacific Poker
Excerpt: The future of internet marketing
Weblog: Pacific Poker
Tracked: September 1, 2005 12:46 AM
Post a comment