Maison > Article > développement back-end > Comment puis-je remplacer les fonctions MySQL par PDO pour améliorer la sécurité et les performances ?
Introduction
L'extension MySQL pour PHP est obsolète et sera supprimée à l'avenir . Comme alternative, l'extension PDO (PHP Data Objects) est recommandée pour la connexion à MySQL et à d'autres bases de données. Cet article fournit un guide sur la façon de remplacer les fonctions MySQL par PDO.
Pourquoi convertir en PDO ?
Connexion à MySQL
$dsn = 'mysql:dbname=databasename;host=127.0.0.1'; $user = 'dbuser'; $password = 'dbpass'; $connection = new PDO($dsn, $user, $password); $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Connexion à MSSQL
$dsn = 'sqlsrv:Server=127.0.0.1;Database=databasename'; $user = 'dbuser'; $password = 'dbpass'; $connection = new PDO($dsn, $user, $password); $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Exécution de requêtes
PDO utilise des instructions préparées pour éviter les vulnérabilités d'injection SQL.
$SQL = 'SELECT ID, EMAIL FROM users WHERE name = :username'; $stmt = $connection->prepare($SQL); $stmt->execute([':username' => 'someone']);
$SQL = 'SELECT ID, EMAIL FROM users WHERE name = ?'; $stmt = $connection->prepare($SQL); $stmt->execute(['someone']);
Récupération des résultats
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
Exemple de classe
Une classe de connexion PDO simple pour encapsuler les éléments communs opérations :
class PdoConnection { public function __construct($dsn, $user, $password, $options = []) { // ... initialize connection } public function query($sql) { // ... execute query and return result } public function prepare($sql, $params = []) { // ... execute prepared query and return result } }
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!