Maison développement back-end tutoriel php Comment utiliser PDO pour obtenir des résultats de requêtes dans l'apprentissage de bases de données PHP ?

Comment utiliser PDO pour obtenir des résultats de requêtes dans l'apprentissage de bases de données PHP ?

Oct 28, 2021 pm 03:21 PM
pdo php

Dans l'article précédent, je vous ai présenté "Comment utiliser PDO pour exécuter des instructions SQL dans l'apprentissage de bases de données PHP ?" ", qui présente en détail les connaissances sur la façon d'utiliser PDO pour exécuter des instructions SQL. Dans cet article, nous continuerons à examiner comment PHP utilise PDO pour obtenir les résultats des requêtes. J'espère que cela aidera tout le monde !

Comment utiliser PDO pour obtenir des résultats de requêtes dans l'apprentissage de bases de données PHP ?

Dans l'article précédent, nous avons appris à utiliser PDO pour exécuter des instructions SQL. Examinons ensuite la méthode d'acquisition de données de PDO. La méthode d'acquisition de données de PDO est très similaire à celle des autres extensions de base de données.

Tant que la requête SELECT est exécutée avec succès, un objet ensemble de résultats sera généré, que ce soit en utilisant la méthode qurey() dans l'objet PDO ou en utilisant prepare() et execute() et d'autres méthodes combinées avec des instructions préparées, l'exécution de la requête SELECT obtiendra l'objet de jeu de résultats PDOStatement. qurey()方法还是使用 prepare() execute() 等方法结合的预处理语句,执行 SELECT 查询都会得到结果集对象 PDOStatement。

通过 PDOStatement 类中的方法就可以获取 SELECT 语句的查询结果,接下来我们就来看一下PDOStatement 类中常见的几个获取结果集数据的方法。

<strong><span style="font-size: 20px;">fetch()</span></strong> 方法

fetch() 方法可以从一个 PDOStatement 对象的结果集中获取当前行的内容,并将结果集指针移至下一行,当到达结果集末尾时返回 FALSE,该方法的语法格式如下:

PDOStatement::fetch([int $fetch_style[, int $cursor_orientation = PDO::FETCH_ORI_NEXT[, int $cursor_offset = 0]]])
Copier après la connexion

其中需要注意的是:

$fetch_style 表示可选参数,用来控制下一行如何返回给调用者。其中这个参数的值必须是 PDO::FETCH_* 系列常量中的一个,如下所示:

  • PDO::FETCH_ASSOC 表示返回一个关联数组;

  • PDO::FETCH_BOTH(默认) 表示返回一个索引数组加关联数组混合的数组

  • PDO::FETCH_BOUND 表示返回 TRUE,并分配结果集中的值给 PDOStatement::bindColumn() 方法绑定的 PHP 变量

  • PDO::FETCH_OBJ 表示返回一个属性名对应结果集列名的匿名对象。

  • PDO::FETCH_CLASS:返回一个请求类的新实例,映射结果集中的列名到类中对应的属性名。

如果 fetch_style 包含 PDO::FETCH_CLASSTYPE 例如:PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE,则类名由第一列的值决定;

$cursor orientation 表示可选参数,用来确定当对象是一个可滚动的游标时应当获取哪一行。此值必须是 PDO::FETCH_ORI_* 系列常量中的一个,默认为 PDO::FETCH_ORI_NEXT。

$offset 表示可选参数,当参数 $cursor_orientation 设置为 PDO::FETCH_ORI_ABS 时,此值指定结果集中想要获取行的绝对行号;当参数 $cursor_orientation 设置为 PDO::FETCH_ORI_REL 时,此值指定想要获取行相对于调用 PDOStatement::fetch() 前游标的位置。

接下来我们通过示例来看一下使用 fetch() 方法,获取 SELECT 语句的查询结果。示例如下:

<?php
    $dsn  = &#39;mysql:host=127.0.0.1;dbname=test&#39;;
    $user = &#39;root&#39;;
    $pwd  = &#39;root&#39;;
    try{
        $pdo = new PDO($dsn,$user,$pwd);
        $sql = &#39;SELECT name,age,sex FROM user WHERE age = \&#39;12\&#39;&#39;;
        $res = $pdo -> query($sql);
        echo &#39;<pre class="brush:php;toolbar:false">&#39;;
        while ($row = $res -> fetch(PDO::FETCH_ASSOC)){
            print_r($row);
        }
    }catch(PDOException $e){
        echo &#39;数据库连接失败:&#39;.$e -> getMessage();
    }
?>
Copier après la connexion

输出结果:

Comment utiliser PDO pour obtenir des résultats de requêtes dans lapprentissage de bases de données PHP ?

由此我们便通过fetch() 方法完成了从一个 PDOStatement 对象的结果集中获取当前行的内容。$offset 表示可选参数,当参数 $cursor_orientation 设置为 PDO::FETCH_ORI_ABS 时,此值指定结果集中想要获取行的绝对行号;当参数 $cursor_orientation 设置为 PDO::FETCH_ORI_REL 时,此值指定想要获取行相对于调用 PDOStatement::fetch() 前游标的位置。

接下来我们看一下fetchAll() 方法的应用。

<strong><span style="max-width:90%">fetchAll()</span></strong> 方法

fetchAll() 方法与上面介绍的 fetch() 方法类似,但是该方法只需要调用一次就可以获取结果集中的所有行,并赋给返回的数组。该方法的语法格式如下:

PDOStatement::fetchAll([int $fetch_style[, mixed $fetch_argument[, array $ctor_args = array()]]])
Copier après la connexion

其中需要注意的是:

$fetch_style 表示可选参数,用来控制返回数组的内容,默认值为 PDO::FETCH_BOTH。该参数的取值与 fetch() 方法相同

$fetch_argument 根据 $fetch_style 参数的值,此参数有不同的意义:

  • PDO::FETCH_COLUMN

    Vous pouvez obtenir les résultats de la requête de l'instruction SELECT via les méthodes de la classe PDOStatement. Examinons ensuite plusieurs méthodes courantes pour obtenir des données d'ensemble de résultats dans la classe PDOStatement. 🎜🎜<strong><span style="font-size: 20px;">fetch()</span></strong>Méthode🎜🎜fetch() La méthode peut obtenir le contenu de la ligne actuelle à partir du jeu de résultats d'un objet PDOStatement et déplacer le pointeur du jeu de résultats vers le suivant row Lorsqu'il atteint FALSE, il est renvoyé à la fin du jeu de résultats. Le format de syntaxe de cette méthode est le suivant : 🎜
    <?php
        $dsn  = &#39;mysql:host=127.0.0.1;dbname=test&#39;;
        $user = &#39;root&#39;;
        $pwd  = &#39;root&#39;;
        try{
            $pdo  = new PDO($dsn,$user,$pwd);
            $sql  = &#39;SELECT name,age,sex FROM user WHERE sex = \&#39;男\&#39;&#39;;
            $res  = $pdo -> query($sql);
            $data = $res -> fetchAll(PDO::FETCH_ASSOC);
            echo &#39;<pre class="brush:php;toolbar:false">&#39;;
            print_r($data);
        }catch(PDOException $e){
            echo &#39;数据库连接失败:&#39;.$e -> getMessage();
        }
    ?>
    Copier après la connexion
    Copier après la connexion
    🎜 Ce qu'il faut noter est : 🎜🎜$fetch_style représente un facultatif. paramètre, qui est utilisé pour contrôler la manière dont la ligne suivante est renvoyée à l’appelant. La valeur de ce paramètre doit être l'une des séries de constantes PDO::FETCH_* , comme indiqué ci-dessous : 🎜
    • 🎜 < code>PDO::FETCH_ASSOC signifie renvoyer un tableau associatif ; 🎜
    • 🎜PDO::FETCH_BOTH (par défaut) signifie renvoyer un tableau qui est un mélange d'index tableau et tableau associatif 🎜
    • 🎜PDO::FETCH_BOUND signifie renvoyer TRUE et attribuer la valeur dans le jeu de résultats à la variable PHP liée par la méthode PDOStatement::bindColumn()🎜
    • 🎜PDO::FETCH_OBJ signifie renvoyer un objet anonyme dont le nom d'attribut correspond au nom de colonne du jeu de résultats. 🎜
    • 🎜PDO::FETCH_CLASS : renvoie une nouvelle instance de la classe demandée, mappant les noms de colonnes dans le jeu de résultats aux noms d'attributs correspondants dans la classe. 🎜
    🎜Si fetch_style contient PDO::FETCH_CLASSTYPE Par exemple : PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE, le nom de la classe est répertorié dans la première colonne Déterminé par la valeur ; 🎜🎜$cursor orientation représente un paramètre facultatif, utilisé pour déterminer quelle ligne doit être obtenue lorsque l'objet est un curseur défilant. Cette valeur doit faire partie de la série de constantes PDO::FETCH_ORI_*, par défaut PDO::FETCH_ORI_NEXT. 🎜🎜$offset représente un paramètre facultatif. Lorsque le paramètre $cursor_orientation est défini sur PDO::FETCH_ORI_ABS, cette valeur spécifie le numéro de ligne absolu de la ligne à obtenir dans. le jeu de résultats ; lorsque Lorsque le paramètre $cursor_orientation est défini sur PDO::FETCH_ORI_REL, cette valeur spécifie la position de la ligne que vous souhaitez récupérer par rapport au curseur avant d'appeler PDOStatement::fetch(). 🎜🎜Ensuite, examinons l'utilisation de la méthode fetch() à travers un exemple pour obtenir les résultats de la requête de l'instruction SELECT. L'exemple est le suivant : 🎜
    PDOStatement::fetchColumn([int $column_number = 0])
    Copier après la connexion
    Copier après la connexion
    🎜Résultat de sortie : 🎜🎜🎜Comment utiliser PDO pour obtenir des résultats de requêtes dans lapprentissage de bases de données PHP ?🎜🎜À partir de là, nous utilisons la méthode fetch() pour obtenir le contenu de la ligne actuelle à partir du jeu de résultats d'un objet PDOStatement. $offset représente un paramètre facultatif. Lorsque le paramètre $cursor_orientation est défini sur PDO::FETCH_ORI_ABS , cette valeur spécifie la ligne que vous souhaitez obtenir. dans le jeu de résultats. Numéro de ligne absolu ; lorsque le paramètre $cursor_orientation est défini sur PDO::FETCH_ORI_REL , cette valeur spécifie la ligne à récupérer par rapport à l'appel à PDOStatement::fetch() < /code>La position du curseur précédent. 🎜🎜Jetons ensuite un coup d'œil à l'application de la méthode fetchAll(). 🎜🎜<strong><span style="max-width:90%">fetchAll()</span></strong>Méthode🎜🎜fetchAll() La méthode est similaire à la méthode fetch() présentée ci-dessus, mais cette méthode ne doit être appelée qu'une seule fois pour obtenir toutes les lignes dans le jeu de résultats et affecté au tableau renvoyé. Le format de syntaxe de cette méthode est le suivant : 🎜
    <?php
        $dsn  = &#39;mysql:host=127.0.0.1;dbname=test&#39;;
        $user = &#39;root&#39;;
        $pwd  = &#39;root&#39;;
        try{
            $pdo = new PDO($dsn,$user,$pwd);
            $sql = &#39;SELECT name,age,sex FROM user&#39;;
            $res = $pdo -> query($sql);
            echo &#39;当前行第一列的值为:&#39;.$res -> fetchColumn().&#39;<br>&#39;;
            echo &#39;当前行第三列的值为:&#39;.$res -> fetchColumn(2).&#39;<br>&#39;;
            echo &#39;当前行第二列的值为:&#39;.$res -> fetchColumn(1).&#39;<br>&#39;;
        }catch(PDOException $e){
            echo &#39;数据库连接失败:&#39;.$e -> getMessage();
        }
    ?>
    Copier après la connexion
    Copier après la connexion
    🎜 Ce qu'il faut noter est : 🎜🎜🎜$fetch_style représente un paramètre facultatif, qui est utilisé pour contrôler le contenu du tableau renvoyé. la valeur par défaut est PDO::FETCH_BOTH. La valeur de ce paramètre est la même que la méthode fetch()🎜🎜$fetch_argument Ce paramètre a des significations différentes selon la valeur du paramètre $fetch_style : 🎜
    • 🎜PDO::FETCH_COLUMN : renvoie la colonne spécifiée indexée à partir de 0 ;🎜
    • PDO::FETCH_CLASS:返回指定类的实例,映射每行的列到类中对应的属性名;

    • PDO::FETCH_FUNC:将每行的列作为参数传递给指定的函数,并返回调用函数后的结果。

    $ctor_args 表示当 $fetch_style 参数为 PDO::FETCH_CLASS 时,自定义类的构造函数的参数。

    接下来我们通过示例来看一下fetchAll() 方法的实际应用,示例如下:

    <?php
        $dsn  = &#39;mysql:host=127.0.0.1;dbname=test&#39;;
        $user = &#39;root&#39;;
        $pwd  = &#39;root&#39;;
        try{
            $pdo  = new PDO($dsn,$user,$pwd);
            $sql  = &#39;SELECT name,age,sex FROM user WHERE sex = \&#39;男\&#39;&#39;;
            $res  = $pdo -> query($sql);
            $data = $res -> fetchAll(PDO::FETCH_ASSOC);
            echo &#39;<pre class="brush:php;toolbar:false">&#39;;
            print_r($data);
        }catch(PDOException $e){
            echo &#39;数据库连接失败:&#39;.$e -> getMessage();
        }
    ?>
    Copier après la connexion
    Copier après la connexion

    输出结果:

    Comment utiliser PDO pour obtenir des résultats de requêtes dans lapprentissage de bases de données PHP ?

    由此我们便通过使用 fetchAll() 方法,获取 SELECT 语句的查询结果。$ctor_args 表示当 $fetch_style 参数为 PDO::FETCH_CLASS 时,自定义类的构造函数的参数。

    接下来我们看一下fetchColumn() 方法的使用。

    <strong><span style="max-width:90%">fetchColumn() </span></strong>方法

    fetchColumn() 方法可以获取结果集中当前行指定字段的值,其语法格式如下:

    PDOStatement::fetchColumn([int $column_number = 0])
    Copier après la connexion
    Copier après la connexion

    其中需要注意的是:

    参数 $column_number表示的是想从行里取回的列的索引数字。

    如果该参数没有取值,也就是如果没有提供值,那么则会从第一列开始获取。

    接下来我们通过示例来看一下fetchColumn() 方法的使用,示例如下:

    <?php
        $dsn  = &#39;mysql:host=127.0.0.1;dbname=test&#39;;
        $user = &#39;root&#39;;
        $pwd  = &#39;root&#39;;
        try{
            $pdo = new PDO($dsn,$user,$pwd);
            $sql = &#39;SELECT name,age,sex FROM user&#39;;
            $res = $pdo -> query($sql);
            echo &#39;当前行第一列的值为:&#39;.$res -> fetchColumn().&#39;<br>&#39;;
            echo &#39;当前行第三列的值为:&#39;.$res -> fetchColumn(2).&#39;<br>&#39;;
            echo &#39;当前行第二列的值为:&#39;.$res -> fetchColumn(1).&#39;<br>&#39;;
        }catch(PDOException $e){
            echo &#39;数据库连接失败:&#39;.$e -> getMessage();
        }
    ?>
    Copier après la connexion
    Copier après la connexion

    输出结果:

    Comment utiliser PDO pour obtenir des résultats de requêtes dans lapprentissage de bases de données PHP ?

    由此我们便通过使用 fetchColumn() 方法,获取指定字段的值。

    大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

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)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

7 fonctions PHP que je regrette de ne pas connaître auparavant 7 fonctions PHP que je regrette de ne pas connaître auparavant Nov 13, 2024 am 09:42 AM

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Programme PHP pour compter les voyelles dans une chaîne Programme PHP pour compter les voyelles dans une chaîne Feb 07, 2025 pm 12:12 PM

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Apr 03, 2025 am 12:03 AM

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.

See all articles