Maison  >  Article  >  développement back-end  >  Premiers pas avec PHP : base de données PDO

Premiers pas avec PHP : base de données PDO

WBOY
WBOYoriginal
2023-05-20 17:42:06875parcourir

PHP est un langage de programmation côté serveur très populaire, et sa flexibilité et sa facilité d'utilisation en font l'un des langages préférés pour le développement Web. Dans le développement d'applications Web, le processus d'interaction avec les bases de données est très important. PDO (PHP Data Object) est une bibliothèque d'extension de PHP qui fournit une interface commune pour interagir avec diverses bases de données relationnelles, notamment MySQL, PostgreSQL, Oracle, etc. Cet article explique comment utiliser PDO pour exploiter une base de données et convient aux débutants.

  1. Installer l'extension PDO

Avant d'utiliser PDO, vous devez confirmer si PHP a installé l'extension PDO. Vous pouvez afficher la liste des extensions PHP via la fonction phpinfo(). S'il n'y a pas d'extension PDO dans la liste des extensions, vous devez définir extension=pdo.so et extension=pdo_mysql.so dans le fichier php.ini, puis redémarrer le serveur Web pour activer l'extension PDO.

  1. Connexion à la base de données

Il est très pratique de se connecter à la base de données via PDO, il vous suffit de fournir les informations pertinentes de la base de données. Voici un exemple de code pour se connecter à une base de données MySQL :

$dbname = "test";
$host = "localhost";
$user = "root";
$pass = "password";

$dsn = "mysql:host=" . $host . ";dbname=" . $dbname;
$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
                PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");

try {
    $pdo = new PDO($dsn, $user, $pass, $options);
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}

Dans le code ci-dessus, les informations pertinentes de la base de données sont d'abord définies, y compris le nom de la base de données, l'hôte, le nom d'utilisateur et le mot de passe. Ensuite, utilisez DSN (Data Source Name) pour transférer les informations de la base de données vers PDO. Trois options sont définies dans le tableau options :

  • ATTR_ERRMODE, qui représente le mode de gestion des erreurs PDO et renvoie des informations sur les erreurs sous forme d'exceptions.
  • ATTR_DEFAULT_FETCH_MODE, indiquant comment obtenir le jeu de résultats, la valeur par défaut est un tableau associatif.
  • MYSQL_ATTR_INIT_COMMAND, qui représente la commande SQL d'initialisation et définit le jeu de caractères sur utf8.

Le bloc try-catch capture les exceptions lors de la connexion à la base de données et génère des informations d'erreur.

  1. Exécuter des instructions SQL

Après vous être connecté avec succès à la base de données, vous pouvez exécuter des instructions SQL pour les opérations sur les données. PDO fournit trois objets d'instruction PDO principaux :

  • PDO::query(), qui exécute une instruction de requête SQL et renvoie un jeu de résultats. S'applique aux instructions SELECT.
  • PDO::prepare(), prépare les instructions SQL. Applicable à SELECT, UPDATE, INSERT, DELETE et autres instructions.
  • PDO::exec(), exécute une instruction SQL et renvoie le nombre de lignes affectées. Applicable aux instructions UPDATE, INSERT, DELETE et autres.

Ce qui suit est un exemple de code qui utilise PDO::query() pour interroger les enregistrements et les afficher :

$sql = "SELECT * FROM user";
try {
    $stmt = $pdo->query($sql);
    while ($row = $stmt->fetch()) {
        echo "Name: " . $row['name'] . "<br>";
        echo "Age: " . $row['age'] . "<br>";
    }
} catch (PDOException $e) {
    echo "Query failed: " . $e->getMessage();
}

Dans le code ci-dessus, une instruction de requête SQL est d'abord définie pour interroger les enregistrements dans la table utilisateur. Utilisez ensuite la méthode query() pour exécuter l'instruction SQL et la variable $stmt renvoie l'objet PDOStatement contenant les résultats de la requête. Utilisez ensuite la méthode fetch() pour parcourir l’ensemble de résultats et afficher le nom et l’âge enregistrés dans chaque ligne. Si une erreur se produit lors de l'exécution de la requête, le bloc try-catch intercepte l'exception et génère le message d'erreur.

Ce qui suit est un exemple de code pour insérer des enregistrements à l'aide de PDO::prepare() :

$sql = "INSERT INTO user(name, age) VALUES(:name, :age)";
try {
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':name', $name);
    $stmt->bindParam(':age', $age);

    $name = "Alice";
    $age = 30;
    $stmt->execute();

    echo "Record inserted successfully.";
} catch (PDOException $e) {
    echo "Insert failed: " . $e->getMessage();
}

Dans le code ci-dessus, une instruction d'insertion SQL est d'abord définie pour insérer un enregistrement dans la table utilisateur. Utilisez la méthode prepare() pour prétraiter les instructions SQL et la variable $stmt renvoie l'objet PDOStatement contenant l'instruction préparée. Utilisez ensuite la méthode bindParam() pour lier l'espace réservé aux paramètres réels. Définissez ensuite les valeurs des paramètres et enfin utilisez la méthodeexecute() pour exécuter l'instruction SQL. Si une erreur se produit lors de l'insertion, le bloc try-catch intercepte l'exception et génère un message d'erreur.

  1. Fermez la connexion à la base de données

Lorsque la connexion à la base de données n'est plus nécessaire, la connexion à la base de données doit être fermée à temps pour libérer des ressources. Vous pouvez utiliser la méthode PDO::null() pour fermer, par exemple :

$pdo = null;

Ce qui précède est un exemple simple d'utilisation de PDO pour les opérations de base de données. L’utilisation de PDO est non seulement pratique, mais également hautement portable et sécurisée. En apprenant les méthodes décrites dans cet article, vous pouvez rapidement démarrer et commencer à utiliser PDO pour votre propre développement d'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