1

私のアプリケーションは大量のデータを MySql データベースに保持しています。別のクラスでクリーニング/エスケープを処理する必要があるのか​​、それともやり過ぎなのか疑問に思っています。また、私は PDO でプリペアド ステートメントを使用しているため、バインディング パラメーターと組み合わせてデータをどれだけクリーニングまたはエスケープする必要があるか正確にはわかりません。

私は古い Perl の格言「それを行うには複数の方法がある」を知っているので、実際の解決策を求めているわけではありません。私は、エスケープを処理するために別のクラスで呼び出すことの利点を比較検討しようとしています。または、このプロセスの単純さをローカルで処理する方がよいかどうかを検討しています。

4

4 に答える 4

4

そうする必要があるのなら、なぜですか?クラスに何かを入れてからそれを要求するとき、やり過ぎはありません。また、コードをテストすることもできます。
とにかく、裸のPHP関数を使用する以外に、それを行う別の方法はありません。

ところで、PDO はエスケープを行います。クラスはクリーニングのみを処理します。

于 2012-06-10T18:00:21.753 に答える
2

これに正しい答えがあるかどうかはわかりませんが、実際には、あなたが話している理由だけでクラスを使用しています。これにより、標準的なスクラビングを行うための標準的な場所が提供されますが、私たちの場合、データベースに取り込まれる前にデータにビジネス ルールを適用することもできます。公平を期すために、データ自体を渡すだけではありませんが、これは、ユーザーからの一般的な入力をある程度制御するための優れた中心的な方法です。

于 2012-06-10T17:59:24.570 に答える
2

はい、それはあなたのアプリケーションがどのように構成されているかによって異なります。私は通常、この種のもののためのメソッドを持つ Util クラスを持っていますが、入力データをクリーニングするためのメソッドがいくつか (またはたくさん) ある場合は、そのサブクラスを作成できます。

Grep Pが言ったように、これは正しい答えでも間違った答えでもありません。

于 2012-06-10T18:01:05.183 に答える
1

追加のコードを追加するたびに、実行速度がマイクロ ナノ ジュニア秒遅くなると主張する人がいるでしょう。X.XXメリットを比較検討することは主観的なものにすぎないため、ご自身で判断する必要があると思います。

ユーティリティ ファイル内のクラスまたはグローバル関数コレクションを使用してデータをエスケープします。唯一本当に重要なことは、使用するコードが簡単に理解できることと、それを次に見た開発者が一体何を考えているのかと頭を悩ませる必要がないことです。

于 2012-06-10T18:01:48.903 に答える