ホームページ >バックエンド開発 >PHPチュートリアル >PDO MySQL の `PDO::ATTR_EMULATE_PREPARES`: 有効にするか無効にするか?
PDO MySQL: PDO::ATTR_EMULATE_PREPARES を有効または無効にする
概要
を使用する場合PDO MySQL、重要な決定は有効にするか無効にするかです。 PDO::ATTR_EMULATE_PREPARES。この記事では、パフォーマンスとセキュリティの特定の懸念事項に基づいたトレードオフと推奨事項について説明します。
パフォーマンスに関する考慮事項
エミュレーションが有効な場合 (EMULATE_PREPARES = true)
エミュレーションが無効な場合 (EMULATE_PREPARES = false)
セキュリティに関する考慮事項
エラー報告
追加考慮事項
推奨事項
上記の考慮事項に基づいて、次の推奨事項が作成されます。
接続関数の例
これらの推奨事項を実装するには、次の接続の使用を検討してください。 function:
<?php function connect_PDO($settings) { $dbh = new PDO( 'mysql:' . implode(';', $settings), $settings['user'], $settings['pass'], [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => (version_compare($dbh->getAttribute(PDO::ATTR_SERVER_VERSION), '5.1.17', '<')) ] ); return $dbh; }
MySQL バージョンに基づいて PDO::ATTR_EMULATE_PREPARES 設定を変更することで、パフォーマンスとセキュリティの最適なバランスを実現できます。
以上がPDO MySQL の `PDO::ATTR_EMULATE_PREPARES`: 有効にするか無効にするか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。