Maison  >  Article  >  développement back-end  >  Comment PHP utilise PDO pour faire fonctionner la base de données

Comment PHP utilise PDO pour faire fonctionner la base de données

王林
王林original
2023-06-18 08:36:131523parcourir

Dans le développement Web, la base de données est un composant très important. Comme d’autres langages de programmation, le langage PHP propose également de nombreuses façons de faire fonctionner la base de données. Parmi eux, PDO (PHP Data Object) est l'un des moyens courants d'exploiter des bases de données en PHP. Il fournit une méthode unifiée, simple, flexible et sûre pour accéder à différents systèmes de bases de données. Cet article présentera comment PHP utilise PDO pour faire fonctionner la base de données.

1. Avantages de PDO

Les avantages de l'utilisation de PDO pour faire fonctionner la base de données sont les suivants :

  1. Le programme est hautement portable : l'utilisation de PDO pour faire fonctionner la base de données est plus portable et peut s'exécuter sur différentes bases de données sans avoir besoin de Apportez des changements majeurs au programme.
  2. Haute sécurité : PDO prend en charge le traitement des paramètres de ligne de commande et peut empêcher efficacement les attaques par injection SQL.
  3. Orienté objet : PDO est orienté objet et peut rendre la programmation POO plus pratique.
  4. Bonnes performances : PDO prend en charge les instructions préparées et la liaison de données, ce qui peut considérablement améliorer l'efficacité des requêtes et ainsi améliorer les performances du programme.

2. Utilisez PDO pour vous connecter à la base de données

Avant de commencer à utiliser PDO pour faire fonctionner la base de données, vous devez d'abord vous connecter à la base de données. Le code pour se connecter à la base de données est le suivant :

//设置数据库连接信息
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'root';
$password = 'root';
$options = [
    //错误模式:在发生错误时抛出异常
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    //默认返回关联数组
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
];
//创建PDO对象
$pdo = new PDO($dsn, $username, $password, $options);

Parmi eux, $dsn représente le type de base de données, le nom d'hôte, le nom de la base de données et d'autres informations, $username représente le nom d'utilisateur, $password représente le mot de passe, $options représente les paramètres, tels que réglage du mode d'erreur, type de données de retour, etc. Lors de la connexion à la base de données, vous pouvez également définir d'autres options, telles que :

$options = [
    //设置字符集
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
    //关闭持久连接
    PDO::ATTR_PERSISTENT => false,
    //设置超时时间
    PDO::ATTR_TIMEOUT => 10,
    //设置返回数据类型为对象
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
    // 禁用预处理语句的模拟
    PDO::ATTR_EMULATE_PREPARES => false,
];

3. PDO implémente les opérations d'ajout, de suppression, de modification et de vérification

Après la connexion à la base de données, vous pouvez ajouter, supprimer, modifier et vérifier la base de données . Les opérations couramment utilisées incluent : l’insertion de données, la mise à jour de données, la suppression de données et l’interrogation de données.

  1. Insérer des données

Le code pour insérer des données dans la base de données à l'aide de PDO est le suivant :

//插入数据
$sql = "INSERT INTO `users` (`name`,`age`,`email`) VALUES (:name,:age,:email)";
$name = 'Tom';
$age = 23;
$email = 'tom@example.com';
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':name', $name);
$stmt->bindValue(':age', $age);
$stmt->bindValue(':email', $email);
$stmt->execute();

Parmi eux, $sql est l'instruction SQL pour insérer des données. La liaison de paramètres est utilisée pour éviter les attaques par injection SQL. La méthode bindValue() liera le paramètre à l'espace réservé portant le nom spécifié, puis appellera la méthodeexecute() pour soumettre la requête à la base de données.

  1. Mettre à jour les données

Le code pour mettre à jour les données à l'aide de PDO est le suivant :

//更新数据
$sql = "UPDATE `users` SET `age` = :age WHERE `name` = :name";
$name = 'Tom';
$age = 24;
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':name', $name);
$stmt->bindValue(':age', $age);
$stmt->execute();

Parmi eux, $sql est l'instruction SQL pour mettre à jour les données. La liaison de paramètres est utilisée pour éviter les attaques par injection SQL. La méthode bindValue() liera le paramètre à l'espace réservé portant le nom spécifié, puis appellera la méthodeexecute() pour soumettre la requête à la base de données.

  1. Supprimer des données

Le code pour supprimer des données à l'aide de PDO est le suivant :

//删除数据
$sql = "DELETE FROM `users` WHERE `name` = :name";
$name = 'Tom';
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':name', $name);
$stmt->execute()

Parmi eux, $sql est l'instruction SQL pour supprimer les données. La liaison de paramètres est utilisée pour éviter les attaques par injection SQL. La méthode bindValue() liera le paramètre à l'espace réservé portant le nom spécifié, puis appellera la méthodeexecute() pour soumettre la requête à la base de données.

  1. Requête de données

Le code pour interroger des données à l'aide de PDO est le suivant :

//查询数据
$sql = "SELECT * FROM `users` WHERE `age` > :age";
$age = 20;
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':age', $age);
$stmt->execute();
$rows = $stmt->fetchAll();

Parmi eux, $sql est l'instruction SQL pour interroger les données est utilisée pour éviter les attaques par injection SQL. La méthode bindValue() liera le paramètre à l'espace réservé portant le nom spécifié, puis appellera la méthodeexecute() pour soumettre la requête à la base de données. La méthode fetchAll() renvoie les résultats de la requête sous forme de tableau multidimensionnel.

Étant donné que PDO prend en charge la récupération de trois types de résultats : tableau associatif, tableau numérique et objet, lors de l'interrogation des résultats, vous devez définir le type d'acquisition de récupération, par exemple :

//查询并获取关联数组
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
 
//查询并获取数字数组
$rows = $stmt->fetchAll(PDO::FETCH_NUM);
 
//查询并获取对象数组
$rows = $stmt->fetchAll(PDO::FETCH_OBJ);

4. traitement des transactions, vous pouvez utiliser les méthodes beginTransaction(), commit() et rollback() pour implémenter les opérations de validation et d'annulation de transaction.

try {
    //开启事务
    $pdo->beginTransaction();
    //执行增删改操作语句
    $pdo->exec($sql1);
    $pdo->exec($sql2);
    $pdo->exec($sql3);
    //提交事务
    $pdo->commit();
} catch (Exception $e) {
    //回滚事务
    $pdo->rollback();
}

Ce qui précède est une introduction de base à l'utilisation de PDO pour faire fonctionner une base de données. Il y a quelques points auxquels vous devez faire attention lorsque vous utilisez une base de données avec PDO :

Utilisez la liaison de paramètres pour éviter les attaques par injection SQL.
  1. Définissez le mode d'erreur de l'exception PDO sur EXCEPTION pour détecter facilement les exceptions.
  2. L'utilisation de la méthode prepare() pour exécuter les instructions d'opération peut mettre en cache l'ensemble de résultats pour améliorer l'efficacité des requêtes.
  3. Le prétraitement des instructions et la liaison des données peuvent éviter un travail répété d'analyse et d'optimisation des instructions, permettant ainsi d'obtenir une plus grande efficacité des requêtes.
  4. Activez le traitement des transactions pour garantir l'intégrité et la cohérence des données.
  5. En bref, utiliser PDO pour faire fonctionner la base de données est un moyen relativement pratique et efficace, qui peut fournir de puissantes capacités d'accès à la base de données pour les applications Web.

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