ホームページ >バックエンド開発 >PHPチュートリアル >PDO 操作で、ATTR_EMULATE_PREPARES 属性を false に設定した後も、準備がローカルでシミュレートされていることがわかりました。

PDO 操作で、ATTR_EMULATE_PREPARES 属性を false に設定した後も、準備がローカルでシミュレートされていることがわかりました。

WBOY
WBOYオリジナル
2016-07-06 13:52:431751ブラウズ

PDO 操作、ATTR_EMULATE_PREPARES 属性を false に設定した後、準備が依然としてローカルでシミュレートされていることがわかりました

リーリー

mysql ログ:

リーリー

「このプロパティを false に設定すると、シミュレーションの準備はローカルで実行されません」という説明どおりではないことがわかりました

phpバージョン5.2.17


補足コンテンツ:
PDO::ATTR_EMULATE_PREPARES は、準備されたステートメントのエミュレーションを有効または無効にします。 一部のドライバーでは、ローカル前処理のサポートがないか、サポートが制限されています。この設定を使用して、PDO が常にプリペアド ステートメントをエミュレートするように強制したり ( TRUE の場合)、ネイティブのプリペアド ステートメントの使用を試行したり ( FALSE の場合) します。 ドライバーが現在のクエリを正常に前処理できない場合、ドライバーは常に準備されたステートメントのエミュレーションに戻ります
これは、ドライバーが現在のクエリを正常に前処理していないことが原因で発生する問題ですか?

返信内容:

PDO 操作、ATTR_EMULATE_PREPARES 属性を false に設定した後、準備が依然としてローカルでシミュレートされていることがわかりました

リーリー

mysql ログ:

リーリー

「このプロパティを false に設定すると、シミュレーションの準備はローカルで実行されません」という説明どおりではないことがわかりました

phpバージョン5.2.17


補足コンテンツ:
PDO::ATTR_EMULATE_PREPARES は、準備されたステートメントのエミュレーションを有効または無効にします。 一部のドライバーでは、ローカル前処理のサポートがないか、サポートが制限されています。この設定を使用して、PDO が常にプリペアド ステートメントをエミュレートするように強制したり ( TRUE の場合)、ネイティブのプリペアド ステートメントの使用を試行したり ( FALSE の場合) します。 ドライバーが現在のクエリを正常に前処理できない場合、ドライバーは常に準備されたステートメントのエミュレーションに戻ります
これは、ドライバーが現在のクエリを正常に前処理していないことが原因で発生する問題ですか?

Win環境でphp5.2.x環境を使用するとスムーズに前処理ができることが分かりました。

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