Transition des fonctions MySQL vers PDO en PHP
Les fonctions MySQL de PHP devraient être obsolètes et éventuellement supprimées. Pour garantir la compatibilité future et tirer parti d'une sécurité et de fonctionnalités améliorées, les développeurs doivent migrer vers PHP Data Objects (PDO), une couche d'accès à la base de données robuste et orientée objet.
Les avantages de l'AOP :
Connexion aux bases de données avec PDO
Connexion 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>
Connexion 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>
Exécuter des requêtes avec des instructions préparées
PDO utilise des instructions préparées pour une exécution de requêtes efficace et sécurisée. Voici comment lier des variables :
Paramètres nommés :
<code class="language-php">$statement = $dbh->prepare('SELECT * FROM users WHERE name = :username'); $statement->execute([':username' => 'example']);</code>
Paramètres indexés :
<code class="language-php">$statement = $dbh->prepare('SELECT * FROM users WHERE name = ?'); $statement->execute(['example']);</code>
Récupération des résultats de la requête
Plusieurs méthodes facilitent la récupération des résultats :
fetch()
: renvoie une seule ligne sous forme de tableau.fetchAll()
: renvoie toutes les lignes sous forme d'un tableau de tableaux.rowCount()
: Fournit le nombre de lignes concernées (utile pour INSERT, UPDATE, DELETE).Un exemple de classe de connexion PDO
Pour améliorer l'organisation et la réutilisabilité du code, envisagez une classe PDO personnalisée :
<code class="language-php">class MyPDO { public $dbh; public function __construct($dsn, $username, $password) { $this->dbh = new PDO($dsn, $username, $password); $this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } public function query($sql) { return $this->dbh->query($sql); } public function prepare($sql) { return $this->dbh->prepare($sql); } } // Example Usage: $mypdo = new MyPDO($dsn, $username, $password); $stmt = $mypdo->prepare('SELECT * FROM users WHERE name = :name'); $stmt->execute([':name' => 'example']); while ($row = $stmt->fetch()) { echo $row['name']; }</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!