Comment remplacer les fonctions MySQL par PDO : un guide pour la connectivité moderne des bases de données en PHP ?

Barbara Streisand
Libérer: 2024-11-16 04:07:50
original
927 Les gens l'ont consulté

How to Replace MySQL Functions with PDO: A Guide to Modern Database Connectivity in PHP?

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

MSSQL :

$dsn = 'sqlsrv:Server=localhost;Database=database_name';
$user = 'username';
$password = 'password';

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

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

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

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

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

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'];
}
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