0

私は電子商取引 CMS を行っており、すべての SQL クエリは mysql_* 関数です。時代遅れになってきているので、PDO の/prepared ステートメントを組み込みたいと思います。

セキュリティの観点から、ユーザー入力を伴うクエリには PDO の / 準備済みステートメントのみを使用する必要がありますか? ユーザー入力のないクエリに mysql_* 関数を使用できますか?

また、違いを確認するために、「PDO vs 準備済みステートメント」をグーグルで検索しましたが、成功しませんでした。違いはありますか、それとも同じものですか?

また、MySQLi の使用を勧められました。MySQLi なしで PDO に固執できますか?

ご提案いただきありがとうございます。よろしく

4

2 に答える 2

1

彼らは時代遅れになっているので

いつから?それらは非推奨ではありません。

mysql、mysqli、およびPDOはすべて、最終的には同じことを行いますが、方法は大きく異なります。同じデータに3つの異なるAPIを使用することはお勧めできません。1つを使用して、それを効果的に使用する方法を学びます。もちろん、あなたはそれらすべての専門家になることができますが、同じプロジェクトで混ぜ合わせないでください-他の人があなたのコードを見たいと思うかもしれません。

中規模から大規模のプロジェクトで作業している場合は、独自の抽象化レイヤーを定義します。そうすれば、どちらを使用してもかまいません。(アプリケーションを異なるDBMS間で移植可能にするという誇大宣伝にもかかわらず、抽象化レイヤーを使用するほど単純ではありません)。

于 2012-05-17T11:28:30.133 に答える
0

PDOプリペアドステートメントライブラリであるため(または、少なくともプリペアドステートメントを使用して実行できます)、そのため、違いを見つけることができません。

mysql_ vs mysqli_vsPDOの質問について。それは個人的な好みです。私は言うでしょう:それらの1つに固執します、しかしあなたのコードベースがすでにかなり大きいなら、私は言うでしょう:それをそのままにして、PDO/Mysqliで新しい部分を書くだけです。

于 2012-05-17T11:26:02.803 に答える