Maison > base de données > tutoriel mysql > Comment migrer des fonctions MySQL obsolètes vers PDO pour MySQL et MSSQL ?

Comment migrer des fonctions MySQL obsolètes vers PDO pour MySQL et MSSQL ?

Mary-Kate Olsen
Libérer: 2025-01-10 09:33:42
original
433 Les gens l'ont consulté

How to Migrate from Deprecated MySQL Functions to PDO for MySQL and MSSQL?

Convertir les fonctions MySQL en PDO pour MySQL et MSSQL

Dépréciation des fonctions MySQL et alternatives

Les extensions de fonctions MySQL sont obsolètes et seront supprimées dans une prochaine version. Il est recommandé d'utiliser MySQLi ou l'extension PDO_MySQL comme alternative. MySQLi et PDO offrent une sécurité et des fonctionnalités améliorées par rapport aux fonctions MySQL.

Mettre en œuvre le PDO

PDO (PHP Data Objects) est une API orientée objet pour accéder aux bases de données. Pour vous connecter à une base de données à l'aide de PDO, créez une nouvelle instance PDO à l'aide du constructeur PDO.

Connectez-vous à MySQL

<code class="language-php">$dsn = 'mysql:dbname=databasename;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

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

Se connecter à MSSQL

<code class="language-php">$dsn = 'sqlsrv:Server=127.0.0.1;Database=databasename';
$user = 'dbuser';
$password = 'dbpass';

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

Utilisez PDO pour exécuter des requêtes

PDO utilise des instructions préparées pour éviter les vulnérabilités d'injection SQL. Une instruction préparée définit une requête SQL avec des espaces réservés nommés ou indexés pour représenter les variables.

<code class="language-php">$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
$preparedStatement = $dbh->prepare($SQL);</code>
Copier après la connexion

Lier des variables

Utilisez bindParam ou bindValue pour lier des valeurs aux instructions préparées.

<code class="language-php">$preparedStatement->bindParam(':username', $username);</code>
Copier après la connexion

Exécuter la requête

Exécutez les instructions préparées pour obtenir des résultats.

<code class="language-php">$preparedStatement->execute();</code>
Copier après la connexion

Obtenir des résultats

PDO fournit des méthodes telles que fetch et fetchAll pour récupérer les résultats sous forme de tableau.

<code class="language-php">while ($row = $preparedStatement->fetch()) {
    echo $row['ID'];
    echo $row['EMAIL'];
}</code>
Copier après la connexion

Utiliser la classe de connexion PDO

Vous pouvez créer une classe de connexion PDO pour simplifier les opérations de base de données.

<code class="language-php">class Database {

    protected $connection;

    public function __construct($dsn, $user, $password) {
        $this->connection = new PDO($dsn, $user, $password);
    }

    public function query($SQL) {
        return $this->connection->query($SQL);
    }

    public function prepare($SQL, $params = []) {
        $preparedStatement = $this->connection->prepare($SQL);
        $preparedStatement->execute($params);
        return $preparedStatement;
    }

}

// 使用方法:
$db = new Database($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'];
    echo $row['EMAIL'];
}</code>
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