PDO MySQL: Dayakan atau Lumpuhkan PDO::ATTR_EMULATE_PREPARES
Pengenalan
Apabila bekerja dengan PDO MySQL, keputusan penting adalah sama ada untuk mendayakan atau melumpuhkan PDO::ATTR_EMULATE_PREPARES. Artikel ini meneroka pertukaran dan pengesyoran berdasarkan kebimbangan khusus prestasi dan keselamatan.
Pertimbangan Prestasi
Dengan Emulasi Didayakan (EMULATE_PREPARES = benar)
Dengan Emulasi Dilumpuhkan (EMULATE_PREPARES = false)
Pertimbangan Keselamatan
Pelaporan Ralat
Pertimbangan Tambahan
Cadangan
Berdasarkan pertimbangan di atas, pengesyoran berikut dibuat:
Contoh Fungsi Sambungan
Untuk melaksanakan pengesyoran ini , pertimbangkan untuk menggunakan fungsi sambungan berikut:
<?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; }
Dengan mengubah suai PDO::ATTR_EMULATE_PREPARES tetapan berdasarkan versi MySQL anda, anda boleh mencapai keseimbangan optimum antara prestasi dan keselamatan.
Atas ialah kandungan terperinci `PDO::ATTR_EMULATE_PREPARES` MySQL PDO: Untuk Mendayakan atau Lumpuhkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!