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
Libérer: 2024-11-10 22:01:03
original
1017 Les gens l'ont consulté

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);
Copier après la connexion

Connexion MSSQL :

$dsn = 'sqlsrv:Server=127.0.0.1;Database=databasename';
$user = 'dbuser';
$password = 'dbpass';

$dbh = new PDO($dsn, $user, $password);
Copier après la connexion

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);
Copier après la connexion

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();
Copier après la connexion

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
Copier après la connexion

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));
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal