ユーザーからのデータ入力を定期的に受け取る小さなWebアプリケーションを作成しています。データ入力が最初にクレンジングされていることを確認する方法を調査する場合、そのためには、プリペアドステートメントが進むべき道のように思われます。
しかし、私はこのSOの質問を見つけました、そして私のアプリケーションは(少なくとも私が知る限り)ページリクエストごとに複数のクエリを実行しないので、私が本当に必要とするのはパラメータへの値のバインドだけであるように思われますクエリ。
PDOとmysqliに関するPHPマニュアルを調べてきましたが、値が通常のクエリにバインドされている例は見つかりません。私が見つけたすべての例には$stmt->prepare
、バインディングの前のどこかにあります。
ステートメントが「準備済み」であるかどうかは、データベースのサポートによって決定され、prepareステートメントは常にコード内にありますか?または、パラメータを直接にバインドする方法はあります$dbh->query(...)
か?
準備を使用できない可能性があるかどうかを確認しようとしている理由を説明するために、投稿の前半でリンクしたSOの質問からのこのステートメントによるものです。
プリペアドステートメントを使用しないのはいつですか?db接続がなくなる前にステートメントを1回だけ実行する場合。
バインドされたクエリパラメータを使用しない場合(これは、ほとんどの人がプリペアドステートメントを使用して取得するものです)?
この
個人的には気にしません。疑似プリペアドステートメントは、おそらく提供される安全な変数の引用に役立つ可能性があります。