Comment passer des fonctions MySQL à PDO
Fonctions MySQL obsolètes
Versions PHP modernes déprécier les fonctions MySQL en raison de leurs limitations et de problèmes de sécurité. Au lieu de cela, les développeurs doivent utiliser les extensions PDO ou MySQLi pour améliorer la connectivité et la sécurité des bases de données.
Introduction à PDO
PDO signifie PHP Data Objects et fournit une API cohérente pour connexion à différents systèmes de bases de données, notamment MySQL et MSSQL. Contrairement aux fonctions MySQL, PDO utilise une interface unifiée et offre une sécurité accrue grâce à des instructions préparées.
Connexion aux bases de données
Connexion MySQL :
$dsn = 'mysql:dbname=databasename;host=127.0.0.1'; $user = 'dbuser'; $password = 'dbpass'; $dbh = new PDO($dsn, $user, $password);
Connexion MSSQL :
$dsn = 'sqlsrv:Server=127.0.0.1;Database=databasename'; $user = 'dbuser'; $password = 'dbpass'; $dbh = new PDO($dsn, $user, $password);
Exécution de requêtes
PDO utilise des instructions préparées au lieu de chaînes SQL simples pour empêcher SQL vulnérabilités d’injection. Les instructions préparées sont construites avec des espaces réservés qui sont ensuite liés à des variables.
Espaces réservés nommés :
$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username'; $queryArguments = array(':username' => $username); $result = $dbh->prepare($SQL); $result->execute($queryArguments);
Espaces réservés indexés :
$SQL = 'SELECT ID, EMAIL FROM users WHERE user = ?'; $bindParamResults = array($username); $result = $dbh->prepare($SQL); $result->bindParam(1, $bindParamResults[0]); $result->execute();
Récupération des résultats
Les résultats peuvent être récupérés à l'aide de diverses méthodes, telles que fetch() et fetchAll().
$row = $result->fetch(PDO::FETCH_ASSOC); // Returns an associative array $allRows = $result->fetchAll(PDO::FETCH_ASSOC); // Returns an array of associative arrays
Exemple Classe AOP
class PDOC { public function __construct($dsn, $user, $password) { $this->dbh = new PDO($dsn, $user, $password); } public function query($sql, $params = array()) { $stmt = $this->dbh->prepare($sql); $stmt->execute($params); return $stmt; } } $pdod = new PDOC('mysql:dbname=db;host=localhost', 'root', ''); $query = $pdod->query('SELECT * From table WHERE id = ?', array(2));
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!