Position actuelle: Accueil> Derniers articles> Comment lire l'ensemble de résultats des paramètres de sortie des procédures stockées via PDOSTATION :: NEXTROWSET?

Comment lire l'ensemble de résultats des paramètres de sortie des procédures stockées via PDOSTATION :: NEXTROWSET?

gitbox 2025-09-08
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Cette partie du code n&#39;a rien à voir avec le contenu de l&#39;article,Principalement utilisé pour la préparation de l&#39;environnement de démonstration</span></span><span>
</span><span><span class="hljs-variable">$dsn</span></span><span> = </span><span><span class="hljs-string">'mysql:host=localhost;dbname=testdb;charset=utf8mb4'</span></span><span>;
</span><span><span class="hljs-variable">$username</span></span><span> = </span><span><span class="hljs-string">'root'</span></span><span>;
</span><span><span class="hljs-variable">$password</span></span><span> = </span><span><span class="hljs-string">''</span></span><span>;
</span><span><span class="hljs-variable">$options</span></span><span> = [
    PDO::</span><span><span class="hljs-variable constant_">ATTR_ERRMODE</span></span><span> => PDO::</span><span><span class="hljs-variable constant_">ERRMODE_EXCEPTION</span></span><span>,
    PDO::</span><span><span class="hljs-variable constant_">ATTR_DEFAULT_FETCH_MODE</span></span><span> => PDO::</span><span><span class="hljs-variable constant_">FETCH_ASSOC</span></span><span>,
];
</span><span><span class="hljs-keyword">try</span></span><span> {
    </span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(</span><span><span class="hljs-variable">$dsn</span></span><span>, </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$options</span></span><span>);
} </span><span><span class="hljs-keyword">catch</span></span><span> (PDOException </span><span><span class="hljs-variable">$e</span></span><span>) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"La connexion de la base de données a échoué: "</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>());
}
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

<h1>Comment passer <code></span><span><span class="hljs-title class_">PDOStatement</span></span><span>::</span><span><span class="hljs-variable constant_">nextRowset</span></span><span>

Exemple de code PHP

 &lt;?php
</span><span><span class="hljs-comment">// Lier les paramètres pour appeler les procédures stockées</span></span><span>
</span><span><span class="hljs-variable">$stmt</span></span><span> = </span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">prepare</span></span><span>(</span><span><span class="hljs-string">"CALL sp_get_user_info(:user_id)"</span></span><span>);
</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">bindValue</span></span><span>(</span><span><span class="hljs-string">':user_id'</span></span><span>, </span><span><span class="hljs-number">123</span></span><span>, PDO::</span><span><span class="hljs-variable constant_">PARAM_INT</span></span><span>);
</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">execute</span></span><span>();

</span><span><span class="hljs-comment">// Lisez le premier ensemble de résultats:Informations sur l&#39;utilisateur</span></span><span>
</span><span><span class="hljs-variable">$userInfo</span></span><span> = </span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetchAll</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Informations sur l&#39;utilisateur:\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$userInfo</span></span><span>);

</span><span><span class="hljs-comment">// Passez à l&#39;ensemble de résultats suivant</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">nextRowset</span></span><span>()) {
    </span><span><span class="hljs-comment">// Lisez le deuxième ensemble de résultats:Nombre de postes</span></span><span>
    </span><span><span class="hljs-variable">$postCount</span></span><span> = </span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetchColumn</span></span><span>();
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Nombre de postes:<span class="hljs-subst">$postCount</span></span></span><span>\n";
}
?&gt;

Résumé des points clés

  • NEXTROWSET () est utilisé pour pointer vers le jeu de résultats suivant, et renvoie True pour indiquer qu'il y a plus de jeux de résultats à lire.
  • Appelez Fetch () et Fetchall () pour lire les données de l'ensemble de résultats actuel.
  • Les procédures stockées peuvent renvoyer plusieurs ensembles de résultats, et les paramètres de sortie sont parfois renvoyés dans des instructions sélectionnés et peuvent être traversés via NEXTROWSET () .
  • Lorsque vous utilisez PDO , n'oubliez pas d'attraper des exceptions pour assurer la sécurité de la connexion et de l'exécution.

Résumer

Avec PDOSTATION :: NEXTROWSET () , nous pouvons facilement lire plusieurs ensembles de résultats renvoyés par des procédures stockées, en particulier adaptées à la gestion des paramètres de sortie ou des requêtes multiples. Une utilisation raisonnable de cette méthode peut rendre PHP en interaction avec les procédures stockées de la base de données plus flexibles et efficaces.