「WordPressで学ぶPHP(3)関数編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」の続編にあたり、PHP組み込みの関数や、独自の関数を作る方法などを解説します。
Kindle本で、定価400円です。
SQLToolsプラグイン(その5・プレースホルダの利用)
状況に応じてSQLのパラメータを変化させたい場合には、プレースホルダを使うことができます。
1.SQLにプレースホルダを入れる
例えば、「IDが1番のブログから、ある期間の記事を読み込む」ということを考えてみます。
この「ある期間」の部分を、状況によって変えたいとします。
このように、SQLを状況によって変えたい場合、その変えたい箇所を「プレースホルダ」にします。
プレースホルダは「?」の記号で表します。
MTSQLObjectsタグで記事を処理する場合だと、上で取り上げた例なら、以下のようなSQLを作ります。
SELECT entry_id FROM mt_entry WHERE entry_blog_id = 1 AND entry_class = 'entry' AND entry_status = 2 AND entry_authored_on BETWEEN ? AND ?
2.placeholdersモディファイアで値を指定
一方、MTSQLObjectsタグ等のSQLを実行するテンプレートタグでは、「placeholders」というモディファイアを使って、プレースホルダを指定します。
個々のプレースホルダに渡す値を、カンマで区切って並べます。
例えば、前述のSQLを使って、「2014年の記事」(2014年1月1日以降、2015年1月1日まで)を読み込みたいとします。
この場合、MTSQLObjectsタグを以下のように書きます。
<mt:SQLObjects name="○○○" type="entry" placeholders="2014-01-01","2015-01-01"> ... </mt:SQLObjects>
3.プレースホルダを変数で指定
一般のテンプレートタグのモディファイアと同様に、プレースホルダを変数で指定することもできます。
例えば、上記の例で期間の開始日/終了日が、それぞれ変数from/toに入っているとします。
この場合、MTSQLObjectsタグを以下のように書きます。
<mt:SQLObjects name="○○○" type="entry" placeholders="$from","$to"> ... </mt:SQLObjects>