Comment remplacer les fonctions MySQL par PDO
Introduction :
L'extension MySQL est obsolète en PHP et doit être remplacé par MySQLi ou PDO_MySQL pour la connectivité de la base de données. PDO (PHP Data Objects) offre une interface moderne orientée objet pour accéder à plusieurs bases de données.
Connexion aux bases de données MySQL et MSSQL :
MySQL :
$dsn = 'mysql:dbname=database_name;host=localhost'; $user = 'username'; $password = 'password'; $dbh = new PDO($dsn, $user, $password);
MSSQL :
$dsn = 'sqlsrv:Server=localhost;Database=database_name'; $user = 'username'; $password = 'password'; $dbh = new PDO($dsn, $user, $password);
Exécution de requêtes :
PDO utilise des instructions préparées pour l'exécution des requêtes , protégeant contre l'injection SQL.
Exemple SQL :
$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
Exécution d'une requête :
// Prepare statement with array of named variables $result = $dbh->prepare($SQL); $result->execute([':username' => $username]); // OR // Prepare statement with named placeholder indicator $result = $dbh->prepare($SQL); $result->bindValue(':username', $username); $result->execute();
Récupération des résultats :
// Fetch a single row as an array $row = $result->fetch(); // Fetch all rows as an array $rows = $result->fetchAll();
Utilisation d'une classe d'assistance :
Pour simplifier les interactions avec la base de données, envisagez d'utiliser une classe comme celle-ci :
class PDOConnection { public $connection; public function __construct($dsn, $username, $password) { $this->connection = new PDO($dsn, $username, $password); $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } public function query($SQL) { return $this->connection->query($SQL); } public function prepare($SQL, $params = []) { $result = $this->connection->prepare($SQL); $result->execute($params); return $result; } }
Exemple d'utilisation :
$db = new PDOConnection($dsn, $user, $password); $SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username'; $result = $db->prepare($SQL, ['username' => $username]); while ($row = $result->fetch()) { echo $row['ID'] . ' ' . $row['EMAIL']; }
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!