Maison  >  Article  >  développement back-end  >  Guide d'utilisation PDO en PHP

Guide d'utilisation PDO en PHP

WBOY
WBOYoriginal
2023-05-21 13:01:361394parcourir

En PHP, utiliser PDO pour faire fonctionner la base de données peut améliorer la sécurité et la portabilité du code. PDO est une extension PHP qui fournit une interface unifiée pour l'accès aux bases de données et prend en charge plusieurs types de bases de données. Cet article vous présentera l’utilisation de base et les précautions de PDO.

1. Se connecter à la base de données
L'utilisation de PDO pour se connecter à la base de données nécessite les paramètres suivants :

$dsn : type de base de données : host=nom d'hôte ; dbname=nom de la base de données
$username : nom d'utilisateur
$password : mot de passe
$ options : paramètres facultatifs utilisés pour spécifier certaines options de connexion à la base de données, telles que le jeu de caractères, le délai d'expiration de la connexion, etc.

Ce qui suit est un exemple de connexion à une base de données MySQL :

$dsn = 'mysql:host=localhost;dbname=test;charset=utf8';
$username = 'root';
$password = '123456' ;
$ options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);

try {

$pdo = new PDO($dsn, $username, $password, $options);

} catch (PDOException $e) {

die($e->getMessage());

}

2 Exécuter des instructions SQL
Obligatoire pour l'utilisation. PDO pour exécuter des instructions SQL L'appel de la méthode préparer de PDO prépare d'abord l'instruction SQL et lie les variables de l'instruction SQL aux paramètres. Ensuite, appelez la méthode d'exécution pour exécuter l'instruction SQL.

Ce qui suit est un exemple d'interrogation de la base de données :

$sql = 'SELECT id, name, age FROM users WHERE age > ?';
$stmt = $pdo->prepare($sql);
$ stmt- >bindParam(1, $age);
$age = 18;
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

Dans cet exemple , Les variables dans les instructions SQL sont remplacées par des points d'interrogation. Lors de la liaison des variables aux paramètres, vous devez utiliser la méthode bindParam ou bindValue.

La méthode bindParam transmet la variable au paramètre par référence, ce qui signifie que lorsque la valeur de la variable change, la valeur du paramètre changera également.

La méthode bindValue copie la valeur de la variable dans le paramètre, ce qui signifie que même si la valeur de la variable change, la valeur du paramètre ne changera pas.

3. Utiliser le contrôle des transactions
Dans les opérations de base de données, une transaction fait référence à un groupe d'opérations de base de données associées dans leur ensemble, soit toutes s'exécutent avec succès, soit toutes sont annulées. Les méthodes beginTransaction, commit et rollBack de PDO peuvent nous aider à contrôler les transactions.

Ce qui suit est un exemple d'insertion de données :

try {

$pdo->beginTransaction();
$stmt = $pdo->prepare('INSERT INTO users (name, age) VALUES (:name, :age)');
$stmt->bindParam(':name', $name);
$stmt->bindParam(':age', $age);

$name = '张三';
$age = 20;
$stmt->execute();

$name = '李四';
$age = 22;
$stmt->execute();

$pdo->commit();

} catch (PDOException $e) {

$pdo->rollBack();
die($e->getMessage());

}

Dans cet exemple, la méthode beginTransaction signifie démarrer une transaction, la méthode commit signifie valider la transaction, et La méthode rollBack signifie annuler la transaction.

4. Notes
Lorsque vous utilisez PDO pour faire fonctionner la base de données, vous devez également faire attention aux points suivants :

  • PDO ne génère pas d'exceptions par défaut. Vous devez spécifier ATTR_ERRMODE comme ERRMODE_EXCEPTION lors de la connexion à la base de données pour lancer. une exception.
  • La méthode de préparation de PDO échappera automatiquement aux paramètres, il n'est donc pas nécessaire de les échapper manuellement.
  • La méthode fetchAll de PDO renvoie un tableau associatif par défaut. Vous pouvez utiliser PDO::FETCH_NUM pour obtenir un tableau d'index numérique et PDO::FETCH_BOTH pour obtenir un tableau contenant à la fois des index numériques et des index associatifs.
  • Pour la base de données MySQL, des instructions préparées simulées doivent être utilisées lorsque PDO exécute des instructions SQL, ce qui peut empêcher les attaques par injection SQL. Lorsque vous utilisez des instructions préparées simulées, vous devez spécifier ATTR_EMULATE_PREPARES comme false lors de la connexion à la base de données.

En résumé, l'utilisation de PDO pour faire fonctionner la base de données peut améliorer la sécurité et la portabilité du code. Afin d'éviter les problèmes de sécurité lors de l'exploitation de la base de données, vous pouvez combiner les méthodes ci-dessus, réfléchir davantage et essayer davantage, et mieux utiliser PDO.

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!

Déclaration:
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