cffunction内で、cfqueryを使って、sql文を発行するのはよくあることなのですが、注意しないと、ファンクションの呼び出し元で参照できてしまうときがあります。
例をみてみましょう。
<cffunction name="lf_test"> |
構造は簡単。
hoge関数をコールすると、select文を発行してくれるというもの。
で、重要なところは、その次のcfloopの部分。
これ、クエリーの結果が表示されるでしょうか?
実は、これ表示されるんですねー。
内部でcfqueryを呼び出していても外部で参照することができるのです。
つまり情報として隠蔽しきれていないわけです。
ではこれを隠蔽するには??
実に簡単。
関数内部でcfscriptで変数宣言を行えばできます。
<cffunction name="lf_test"> |
こうすることによって、呼び出し元でqueryを呼び出すことができません。
(したがって、上のソースは、cfloopでエラーを引き起こします。)
cffunction内部で、queryを実行する時に注意したいっすね。