アクセス元を見ていてたまに「END_OF_SQL」で検索してくる人がいる。。。。ってググるとこの日記が TOP に来てるやん。

ええと、「END_OF_SQL」ってなんか意味ありげな予約語に見えるかもしれないけど、違います。意味は無いです。
これは「ヒアドキュメント」という機能で、

例えば

$SQL=<<End_Of_SQL
SELECT ’Hello’;
End_Of_SQL

としているのを

$SQL=<<End_STRING
SELECT ’Hello’;
End_STRING

としても

$SQL=<<OSHIMAIDAYO
SELECT ’Hello’;
OSHIMAIDAYO


でもいいわけである。
なお、ヒアドキュメントは「<」の数で
変数展開の規則が変わる言語があるとか、
PHP では @ は普通の文字だが
perl では @ は展開される変数の Prefix になるとか
あるので、かならず使用するもののヘルプ等を参照しましょう。
---
2009-6-12 追記・修正
SQL を記述したヒアドキュメントで変数展開することはSQLインジェクションの脆弱性につながる場合があるため、サンプルを変数展開がないものに差し替えました。

コメント