6

物事を明確にするために、まさにこの質問があります。いくつかのドキュメントとコメントを読みましたが、まだ何かが十分に明確ではありません。

  • PDO はより多くのドライバーを提供することを理解しています。これは、データベースの種類を変更する場合にプラスになります。
  • 別の投稿で述べたように、PDO は真の準備済みステートメントを提供しませんが、mysqli は提供するため、MYSQLI を使用する方が安全です。
  • ベンチマークは似ています (自分でテストしたわけではありませんが、Web でいくつかのベンチマークをチェックしました)。
  • mysqli が追いついてきているので、オブジェクト指向であることは私にとって問題ではありません。ただし、手続き型はわずかに高速であると想定されているため、手続き型の mysqli と PDO のベンチマークを行うとよいでしょう。

しかし、これが私の質問です。準備されたステートメントでは、ステートメントで使用するデータにパラメーターバインディングを使用する必要がありますか? 良い習慣ですか?同じクエリを複数回実行する場合、準備されたステートメントはパフォーマンス面で優れていると理解していますが、クエリ自体を保護するには十分ですか? またはバインドパラメータは必須ですか? バインド パラメータは正確には何をし、SQL インジェクションからデータを保護するためにどのように機能しますか? また、上記の発言についての誤解を指摘していただければ幸いです。

4

1 に答える 1