Maison développement back-end Problème PHP Comment utiliser PDO pour les opérations de requête de base de données en PHP

Comment utiliser PDO pour les opérations de requête de base de données en PHP

Apr 12, 2023 am 09:19 AM

PHP PDO est une interface qui peut se connecter à plusieurs bases de données différentes. Dans les applications PHP, il peut connecter le code PHP à des systèmes de bases de données tels que MySQL, PostgreSQL, Oracle, etc. Dans cet article, nous expliquerons comment utiliser PDO pour les opérations de requête.

  1. Connectez-vous à la base de données

Avant d'utiliser PDO pour interroger la base de données, vous devez d'abord établir une connexion. Voici un exemple de code pour se connecter à une base de données MySQL :

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully";
} catch(PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
?>
Copier après la connexion

Ce code se connectera à la base de données MySQL locale et demandera des informations sur le succès ou l'échec de la connexion. A travers cet exemple, nous pouvons voir que PDO gère les erreurs de connexion via la gestion des exceptions.

  1. Interrogation d'une seule ligne de données

Ensuite, nous présenterons comment utiliser PDO pour interroger une seule ligne de données. Voici un exemple de code pour interroger une seule ligne de données :

<?php
$stmt = $conn->prepare("SELECT * FROM customers WHERE id = :id");
$stmt->bindParam(':id', $id);

$id = 1;
$stmt->execute();

$result = $stmt->fetch(PDO::FETCH_ASSOC);

echo "id: " . $result['id'] . "<br>";
echo "name: " . $result['name'] . "<br>";
echo "email: " . $result['email'] . "<br>";
?>
Copier après la connexion

Ce code interrogera une ligne de données dans la base de données et affichera les résultats. Tout d'abord, nous utilisons la méthode PDO::prepare() pour préparer l'instruction de requête, puis utilisons la méthode bindParam() pour lier les paramètres de requête à l'espace réservé, puis utilisons la méthode execute() pour exécuter la requête, et enfin utilisons le Méthode fetch() pour récupérer les résultats de la requête de retour.

  1. Interroger des données multi-lignes

PDO prend également en charge l'interrogation de données multi-lignes. Voici un exemple de code pour interroger plusieurs lignes de données :

<?php
$stmt = $conn->prepare("SELECT * FROM customers");
$stmt->execute();

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach($result as $row) {
    echo "id: " . $row['id'] . "<br>";
    echo "name: " . $row['name'] . "<br>";
    echo "email: " . $row['email'] . "<br>";
    echo "<hr>";
}
?>
Copier après la connexion

Ce code utilise la méthode fetchAll() pour interroger plusieurs lignes de données dans la base de données et génère chaque ligne de données dans une boucle. La méthode fetchAll() renvoie un tableau à deux dimensions et nous pouvons utiliser foreach pour parcourir chaque ligne de données.

  1. Interroger des données et les afficher dans des pages

Dans les applications Web, nous devons généralement paginer les résultats de la requête. Voici un exemple de code pour interroger des données et les afficher dans des pages :

<?php
$records_per_page = 10;
$page = isset($_GET['page']) ? $_GET['page'] : 1;

$stmt = $conn->prepare("SELECT * FROM customers LIMIT :offset, :records_per_page");
$stmt->bindParam(':offset', ($page - 1) * $records_per_page, PDO::PARAM_INT);
$stmt->bindParam(':records_per_page', $records_per_page, PDO::PARAM_INT);

$stmt->execute();

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach($result as $row) {
    echo "id: " . $row['id'] . "<br>";
    echo "name: " . $row['name'] . "<br>";
    echo "email: " . $row['email'] . "<br>";
    echo "<hr>";
}

$stmt = $conn->prepare("SELECT COUNT(*) FROM customers");
$stmt->execute();

$total_records = $stmt->fetchColumn();
$total_pages = ceil($total_records / $records_per_page);

echo "<div>";
for($i = 1; $i <= $total_pages; $i++) {
    echo "<a href='?page=$i'>$i</a> ";
}
echo "</div>";
?>
Copier après la connexion

Le code définit d'abord les variables de numéro d'enregistrement et de numéro de page, puis les ajoute à l'instruction de requête. Dans la boucle, nous sortons chaque ligne de données. Ensuite, nous interrogeons le nombre total d'enregistrements et calculons le nombre total de pages. Enfin, nous générons le lien paginé.

Conclusion

Ci-dessus sont quelques exemples d'utilisation de PDO pour interroger la base de données avec PHP. Ces codes peuvent vous aider à utiliser correctement les instructions de requête PDO dans vos applications PHP.

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 de ce site Web
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

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles sont les meilleures pratiques pour la déduplication des tableaux PHP Quelles sont les meilleures pratiques pour la déduplication des tableaux PHP Mar 03, 2025 pm 04:41 PM

Quelles sont les meilleures pratiques pour la déduplication des tableaux PHP

La déduplication PHP Array peut-elle profiter de l'unicité du nom clé? La déduplication PHP Array peut-elle profiter de l'unicité du nom clé? Mar 03, 2025 pm 04:51 PM

La déduplication PHP Array peut-elle profiter de l'unicité du nom clé?

Quelles sont les dernières normes de codage PHP et les meilleures pratiques? Quelles sont les dernières normes de codage PHP et les meilleures pratiques? Mar 10, 2025 pm 06:16 PM

Quelles sont les dernières normes de codage PHP et les meilleures pratiques?

Comment puis-je travailler avec les extensions de PHP et PECL? Comment puis-je travailler avec les extensions de PHP et PECL? Mar 10, 2025 pm 06:12 PM

Comment puis-je travailler avec les extensions de PHP et PECL?

Comment implémenter les files d'attente de messages (Rabbitmq, Redis) dans PHP? Comment implémenter les files d'attente de messages (Rabbitmq, Redis) dans PHP? Mar 10, 2025 pm 06:15 PM

Comment implémenter les files d'attente de messages (Rabbitmq, Redis) dans PHP?

Quelles sont les techniques d'optimisation pour la déduplication des tableaux PHP Quelles sont les techniques d'optimisation pour la déduplication des tableaux PHP Mar 03, 2025 pm 04:50 PM

Quelles sont les techniques d'optimisation pour la déduplication des tableaux PHP

La déduplication du tableau PHP doit-elle être prise en compte pour les pertes de performance? La déduplication du tableau PHP doit-elle être prise en compte pour les pertes de performance? Mar 03, 2025 pm 04:47 PM

La déduplication du tableau PHP doit-elle être prise en compte pour les pertes de performance?

Comment utiliser la réflexion pour analyser et manipuler le code PHP? Comment utiliser la réflexion pour analyser et manipuler le code PHP? Mar 10, 2025 pm 06:12 PM

Comment utiliser la réflexion pour analyser et manipuler le code PHP?

See all articles