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>
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>
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>
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>
Exécuter la requête
Exécutez les instructions préparées pour obtenir des résultats.
<code class="language-php">$preparedStatement->execute();</code>
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>
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>
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!