Maison >développement back-end >tutoriel php >Comment passer des fonctions MySQL obsolètes à PDO en PHP ?

Comment passer des fonctions MySQL obsolètes à PDO en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-10 22:01:031046parcourir

How to Transition from Deprecated MySQL Functions to PDO in PHP?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn