mysql_real_escape_stringを使用したトランザクション
-
30-09-2019 - |
質問
最近、PHPからMySQLを使用して、私はこれについて疑問に思っています:
- 使用することによるパフォーマンスの影響は何ですか
mysql_real_escape_string()
スクリプトで複数回? - 特定のスクリプトのこの関数への呼び出しの数を減らすことは価値がありますか?
- 接続の文字セットが毎回呼び出されるか、この値がキャッシュされていますか?
シナリオが必要な場合、私はPHPとテキストと数字の区別について考えています。 intval()
, floatval()
または直接キャスト)は、電話なしで含めることができます。
解決
ペニーの面でポンドフーリッシュにならないでください。
あなたの質問は、マイクロ最適化の領域にあります。必要なインデックスを作成したり、いくつかのクエリ結果をキャッシュすると、数回の呼び出しのパフォーマンスへの影響を心配するよりも、数桁の利点があります mysql_real_escape_string()
.
ちなみに、タイプキャスト (int) $variable
呼び出しよりも少し速いです intval($variable)
. 。しかし、これも微小最適化になります。
他のヒント
データベースエントリの前にユーザー入力をエスケープする必要がある場合は、使用する必要があります mysql_real_escape_string()
...時期尚早の最適化についてあまり心配しないでください。
または、この関数を複数回呼び出す必要があることを節約する準備されたステートメントを調べることができます。また、SQLロジックをユーザー入力から完全に分離するため、より安全です。
所属していません StackOverflow