Comment remplacer les fonctions MySQL par PDO
Les fonctions MySQL sont désormais obsolètes et seront supprimées dans les futures versions de PHP. MySQLi ou PDO_MySQL doivent être utilisés à la place.
Implémentation PDO
PDO fournit une interface cohérente pour se connecter à différentes bases de données, notamment MySQL et MSSQL.
Connexion :
MySQL :
$dsn = 'mysql:dbname=databasename;host=127.0.0.1'; $dbh = new PDO($dsn, 'dbuser', 'dbpass');
MSSQL :
$dsn = 'sqlsrv:Server=127.0.0.1;Database=databasename'; $dbh = new PDO($dsn, 'dbuser', 'dbpass');
Performant Requêtes :
PDO utilise des instructions préparées, qui empêchent les vulnérabilités d'injection SQL.
$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
Exécution de requêtes :
Utilisez préparer et exécuter pour les requêtes variables.
$query = $dbh->prepare($SQL); $query->execute([':username' => 'someone']);
Récupération Résultats :
Utilisez fetch ou fetchAll pour récupérer les résultats.
while ($row = $query->fetch()) { echo $row['ID'], $row['EMAIL']; }
Gestion des exceptions :
Activez la gestion des exceptions PDO.
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Commodité Classe :
class PDOConnection { function __construct($dsn, $username, $password) { $this->connection = new PDO($dsn, $username, $password); $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $this->connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } function query($SQL) { return $this->connection->query($SQL); } function prepare($SQL, $params = []) { return $this->connection->prepare($SQL)->execute($params); } }
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!