Réécriture du code PHP hérité avec des fonctions mysql_* obsolètes
Comme vous l'avez découvert, les fonctions mysql_* en PHP ont été obsolètes pour des raisons de sécurité et des problèmes de stabilité. Pour réécrire efficacement votre code, tenez compte des directives suivantes :
1. Passez au PDO ou aux instructions préparées :
Remplacez les fonctions mysql_* par des instructions PDO ou préparées pour améliorer la sécurité et éviter les vulnérabilités d'injection SQL.
2. Reconfigurer la connexion à la base de données :
La connexion à la base de données doit être établie à l'aide d'une chaîne de connexion au lieu de paramètres individuels. Par exemple :
<code class="php">$db = new PDO('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');</code>
3. Supprimez le constructeur et le destructeur inutiles :
Les fonctions telles que __construct et __destruct ne sont plus nécessaires avec PDO. PDO gère la connexion et le nettoyage de la base de données en interne.
4. Sélection simplifiée de la base de données :
Pour sélectionner une base de données avec PDO, utilisez la méthode exec :
<code class="php">$db->exec("USE " . $database);</code>
5. Envisagez l'extension de classe de base de données :
Si vous le souhaitez, vous pouvez étendre PDO pour créer votre propre classe de base de données avec des fonctionnalités personnalisées.
Exemple de réécriture :
Votre script original peut être réécrit comme suit à l'aide de PDO :
<code class="php">class dbConn extends PDO { public function connect() { try { parent::__construct('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass'); } catch (PDOException $e) { die('Database connection failed: ' . $e->getMessage()); } } public function selectDb($database) { $this->exec("USE " . $database); $this->query("SET NAMES 'utf8'"); } }</code>
N'oubliez pas que le passage à PDO ou aux instructions préparées améliore non seulement la sécurité, mais simplifie également la maintenance du code et améliore les performances.
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!