- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPのPDOのプレースフォルダの使い方について)
PHPのPDOのプレースフォルダの使い方について
このQ&Aのポイント
- PHPのPDOを使用する際に、URLクエリから受け取る値によってプレースフォルダを使い分ける方法について教えてください。
- 要求された値に基づいてitemテーブルからデータを取得し、価格の高い順または安い順で表示するために、プレースフォルダを使用したクエリを作成しました。
- しかし、プレースフォルダを使った部分がうまく動作しないため、正しい方法を知りたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>この場合、descの部分をプレースフォルダにして 出来ません。 >上記のような場合PDOの意味が無いような気がします。 そうですね。プレースホルダを使う最大の利点は「面倒なエスケープ処理をドライバに任せられる」ことです。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.2
$sqlは文字列ですから普通にsprintfあたりで処理してやれば? <?PHP $sql="select * from item order dy price %s limit %d,%d"; $sort=(isset($_GET['price'])and $_GET['price']==="low")?"asc":"desc"; $show=isset($_GET['show'])?$_GET['show']:0; $p=isset($_GET['p'])?$_GET['p']:30; $sql=sprintf($sql,$sort,$show,$p); print $sql; ?>
質問者
お礼
ご回答ありがとうございます。 確かに文字列ですのでお示しいただいたプログラムでよいと思います。 しかし、これではプレースフォルダとして機能しないと思います。
お礼
明確に出来ませんとのお答えありがとうございます。 出来ないことがわかればそれで納得ですが、出来ればなぜ出来ないかのご説明もいただけたらより、うれしいです。 おそらく、descやascはSQL文のselectやfromなどと同じ類のものだから出来ないのかなと思っています。 出来るかできないかすっきりとしました。 ありがとうございます。 今後もご質問されていただくと思います。 皆様ご教授お願いします。