PDO MySQL : activer ou désactiver PDO::ATTR_EMULATE_PREPARES
Introduction
Lorsque vous travaillez avec PDO MySQL, une décision critique est d'activer ou de désactiver PDO :: ATTR_EMULATE_PREPARES. Cet article explore les compromis et les recommandations basées sur les préoccupations spécifiques en matière de performances et de sécurité.
Considérations sur les performances
Avec l'émulation activée (EMULATE_PREPARES = true)
Avec l'émulation désactivée (EMULATE_PREPARES = false)
Sécurité Considérations
Rapport d'erreurs
Supplémentaires Considérations
Recommandation
Sur la base des considérations ci-dessus, les recommandations suivantes sont faites :
Exemple de fonction de connexion
Pour mettre en œuvre ces recommandations, envisagez en utilisant la fonction de connexion suivante :
<?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; }
En modifiant le Paramètre PDO::ATTR_EMULATE_PREPARES basé sur votre version de MySQL, vous pouvez atteindre un équilibre optimal entre performances et sécurité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!