1

最近、PHPからMySQLを使用して、これについて疑問に思っています。

  • mysql_real_escape_string()スクリプトで複数回使用することによるパフォーマンスへの影響は何ですか?
  • 特定のスクリプトに対してこの関数を呼び出す回数を減らすことを試みる価値はありますか?
  • 呼び出されるたびに接続の文字セットを決定しますか、それともこの値がキャッシュされますか?

シナリオが必要な場合は、PHPと、テキストと数字の区別について考えています。数字(intval()floatval()または直接キャストを使用)は、呼び出しなしで含めることができます。

4

2 に答える 2

4

ペニーワイズでポンドバカにならないでください。

あなたの質問は、マイクロ最適化の領域にあります。必要なインデックスを作成したり、クエリ結果をキャッシュしたりすると、へのいくつかの呼び出しによるパフォーマンスへの影響を心配するよりも、桁違いに多くのメリットがありますmysql_real_escape_string()

ちなみに、を使用した型キャスト(int) $variableは、を呼び出すよりもわずかに高速ですintval($variable)。しかし、これもマイクロ最適化になります。

于 2010-09-04T02:54:37.230 に答える
2

データベースエントリの前にユーザー入力をエスケープする必要がある場合は、使用する必要がありますmysql_real_escape_string()...時期尚早の最適化についてはあまり心配しないでください。

または、プリペアドステートメントを調べることで、この関数を複数回呼び出す必要がなくなります。SQLロジックがユーザー入力から完全に分離されるため、より安全です。

于 2010-09-04T02:50:44.903 に答える