インソースマーケティングデザイン
2013.10.31 コーディング
wordpress でプレースホルダーを使うときの注意点
こんにちわ。大門です!
先日、ものすごくはまってしまったのでメモです。
先日、そのプレースホルダーで日付を扱おうとしたときのことです。
まずは、通常のプレースホルダの使い方を下記に書きます。
通常のプレースホルダの例)
SELECT * FROM A_TABLE WHERE ID = %d;
SELECT * FROM A_TABLE WHERE NAME = %s;
上記のように、数値は「%d」文字列は「%s」を用います。続いて、日付フォーマットの例
例)
SELECT * FROM A_TABLE WHERE DATE_FORMAT(create_date, %Y/%m/%d) < DATE_FORMAT(%s, %Y/%m/%d);
・・・。
実行しているのにデータが返ってこない。
実は、Wordpressのプレースホルダで使用する値とMySQLで使用する日付フォーマットの値が競合し、不具合が起きるのです。
解決策は・・・wordpress上でどうすればよいかわからず、プレースホルダをやめて、パラメータを渡すやり方にしました。
【注意】パラメータとして渡す値はフォーマットチェックをかけてSQLインジェクション対策をします。
以上、制作ではまってしまった事でした。。。