Maison > Article > développement back-end > Pourquoi devrais-je migrer des fonctions MySQL vers PDO ?
Comment migrer des fonctions MySQL vers PDO
Introduction
En tant que PHP 5.5.0 marque la dépréciation des fonctions MySQL, il est essentiel de passer à des alternatives comme PDO ou MySQLi pour les opérations de base de données. Cet article fournit un guide pour migrer votre code vers PDO, couvrant à la fois les serveurs MySQL et MSSQL.
Pourquoi les fonctions MySQL sont obsolètes
Les fonctions MySQL sont anciennes et sujettes à la sécurité vulnérabilités, les rendant inadaptés aux applications PHP modernes. Ils manquent de fonctionnalités pratiques et sont difficiles à appliquer en toute sécurité. PDO et MySQLI résolvent ces problèmes et proposent des améliorations significatives.
Connexion à MySQL avec PDO
Créez une instance PDO à l'aide du DSN (Data Source Name) :
Connexion à MSSQL avec PDO
Créez une instance PDO en utilisant le DSN (Data Source Name):
Exécution de requêtes avec des instructions préparées
PDO utilise des instructions préparées qui empêchent l'injection SQL en nettoyant les entrées utilisateur insérées dans les requêtes SQL. Pour préparer une instruction :
Utilisez ->prepare() pour créer une instruction préparée.
Paramètre de liaison ( s) à l'instruction préparée en utilisant ->bindValue():
Exécution de requêtes
Exécutez l'instruction préparée en utilisant ->execute() sans passer aucun arguments :
Pour les requêtes directes, utilisez ->query() :
Récupération des résultats
fetch() récupère une seule ligne de l'ensemble de résultats. fetchAll() récupère toutes les lignes dans un tableau.
Exemple de classe pour PDO
class pdoConnection { // ... public function prepare($SQL, $params = array()) { $result = $this->connection->prepare($SQL); $result->execute($params); return $result; } } // Usage: $SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username'; $result = $db->prepare($SQL, array(":username" => 'someone'));
Conclusion
La migration vers PDO à partir des fonctions MySQL nécessite quelques modifications de code, mais elle améliore considérablement la sécurité de la base de données et prépare votre application aux futures versions de PHP. Les exemples de code et la classe d'exemple fournis devraient faciliter une transition en douceur.
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!