ホームページ >バックエンド開発 >PHPチュートリアル >PHP PDO の前処理はどのようにキャッシュされますか?

PHP PDO の前処理はどのようにキャッシュされますか?

WBOY
WBOYオリジナル
2016-09-15 11:31:001412ブラウズ

最近、SQLの前処理(prepare)は以下の2つの理由で使用されます。

  1. 高効率。

  2. SQL インジェクションを防止します。

公式ドキュメント、php.netデータオブジェクトを読んでください

しかし、まだ使い方が少しわかりにくいです。

効率は向上するか? 前処理が同じ前処理 SQL でパラメータを変更するだけであれば、確実に効率は向上すると思います: ただし、次の状況の場合:

リーリー

これを書きたいのですが、最も重要なことは、PDO perpare がどのようにキャッシュされるかを知ることです。または同様の書類(英語でも可)があります。

返信内容:

最近、SQLの前処理(prepare)は以下の2つの理由で使用されます。

  1. 高効率。

  2. SQL インジェクションを防止します。

公式ドキュメント、php.netデータオブジェクトを読んでください

しかし、まだ使い方が少しわかりにくいです。

効率は向上するか? 前処理が同じ前処理 SQL でパラメータを変更するだけであれば、確実に効率は向上すると思います: ただし、次の状況の場合:

リーリー

これを書きたいのですが、最も重要なことは、PDO perpare がどのようにキャッシュされるかを知ることです。または同様のドキュメントがあります(英語でも可)。

プリペアド ステートメントの主な機能は次のとおりです:
1. PDO または基礎となるデータベース ライブラリは、常にプリペアド ステートメントを使用する場合、SQL に対して脆弱になりません。注射攻撃。
2. 多くのデータベースでは、クエリ テキスト全体を再送信する代わりに、プリペアド ステートメントをクエリ プランにキャッシュし、プリペアド ステートメントへのシンボリック参照を使用する方が高速になる場合があります。最も明白なことは、プリペアド ステートメント オブジェクトを 1 回宣言するだけで済み、その後、別の変数が見つかったときにそのプリペアド ステートメント オブジェクトを再利用するだけでよいということです。

この 2 つのうち、明らかに安全性の方が重要であるため、準備されたステートメントが不可欠になります。効率が高いということは、複数の前処理で同じオブジェクトを使っているので効率が上がっているのではないかと思います。

元の投稿

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。