PDO MySQL: PDO::ATTR_EMULATE_PREPARES aktivieren oder deaktivieren
Einführung
Beim Arbeiten mit PDO MySQL, eine entscheidende Entscheidung ist, ob aktiviert oder deaktiviert werden soll PDO::ATTR_EMULATE_PREPARES. In diesem Artikel werden die Kompromisse und Empfehlungen auf der Grundlage der spezifischen Leistungs- und Sicherheitsaspekte untersucht.
Überlegungen zur Leistung
Mit aktivierter Emulation (EMULATE_PREPARES = true)
Mit deaktivierter Emulation (EMULATE_PREPARES = false)
Sicherheit Überlegungen
Fehlerberichterstattung
Zusätzlich Überlegungen
Empfehlung
Basierend auf den obigen Überlegungen werden folgende Empfehlungen ausgesprochen:
Beispielverbindungsfunktion
Um diese Empfehlungen umzusetzen, sollten Sie Folgendes berücksichtigen Verwenden der folgenden Verbindungsfunktion:
<?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; }
Durch Ändern der PDO::ATTR_EMULATE_PREPARES-Einstellung basierend auf Ihrer MySQL-Version können Sie ein optimales Gleichgewicht zwischen Leistung und Sicherheit erreichen.
Das obige ist der detaillierte Inhalt vonPDO MySQLs „PDO::ATTR_EMULATE_PREPARES': Aktivieren oder deaktivieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!