Comment migrer des fonctions MySQL vers PDO_MySQL ?

Susan Sarandon
Libérer: 2024-11-26 08:54:10
original
617 Les gens l'ont consulté

How to Migrate from MySQL Functions to PDO_MySQL?

Comment remplacer les fonctions MySQL par PDO

Les fonctions MySQL sont désormais obsolètes et seront supprimées dans les futures versions de PHP. MySQLi ou PDO_MySQL doivent être utilisés à la place.

Implémentation PDO

PDO fournit une interface cohérente pour se connecter à différentes bases de données, notamment MySQL et MSSQL.

Connexion :

  • MySQL :

    $dsn = 'mysql:dbname=databasename;host=127.0.0.1';
    $dbh = new PDO($dsn, 'dbuser', 'dbpass');
    Copier après la connexion
  • MSSQL :

    $dsn = 'sqlsrv:Server=127.0.0.1;Database=databasename';
    $dbh = new PDO($dsn, 'dbuser', 'dbpass');
    Copier après la connexion

Performant Requêtes :

PDO utilise des instructions préparées, qui empêchent les vulnérabilités d'injection SQL.

$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
Copier après la connexion

Exécution de requêtes :

Utilisez préparer et exécuter pour les requêtes variables.

$query = $dbh->prepare($SQL);
$query->execute([':username' => 'someone']);
Copier après la connexion

Récupération Résultats :

Utilisez fetch ou fetchAll pour récupérer les résultats.

while ($row = $query->fetch()) {
    echo $row['ID'], $row['EMAIL'];
}
Copier après la connexion

Gestion des exceptions :

Activez la gestion des exceptions PDO.

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Copier après la connexion

Commodité Classe :

class PDOConnection {
    function __construct($dsn, $username, $password) {
        $this->connection = new PDO($dsn, $username, $password);
        $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $this->connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    }

    function query($SQL) { return $this->connection->query($SQL); }
    function prepare($SQL, $params = []) { return $this->connection->prepare($SQL)->execute($params); }
}
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