Aktueller Standort: Startseite> Neueste Artikel> Wie lesen Sie die Ergebnismenge der Ausgangsparameter gespeicherter Prozeduren durch pdostatement :: Nextrowset?

Wie lesen Sie die Ergebnismenge der Ausgangsparameter gespeicherter Prozeduren durch pdostatement :: Nextrowset?

gitbox 2025-09-08
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Dieser Teil des Codes hat nichts mit dem Inhalt des Artikels zu tun,Hauptsächlich zur Vorbereitung der Demonstrationsumgebung verwendet</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">"Die Datenbankverbindung ist fehlgeschlagen: "</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>Wie man passt <code></span><span><span class="hljs-title class_">PDOStatement</span></span><span>::</span><span><span class="hljs-variable constant_">nextRowset</span></span><span>

Beispiel für PHP -Code

 &lt;?php
</span><span><span class="hljs-comment">// Binden Sie die Parameter an die aufgereicherten Prozeduren ein</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">// Lesen Sie das erste Ergebnissatz:Benutzerinformationen</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">"Benutzerinformationen:\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">// Wechseln Sie zum nächsten Ergebnissatz</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">// Lesen Sie das zweite Ergebnissatz:Anzahl der Beiträge</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">"Anzahl der Beiträge:<span class="hljs-subst">$postCount</span></span></span><span>\n";
}
?&gt;

Zusammenfassung der wichtigsten Punkte

  • NexTrowset () wird verwendet, um auf die nächste Ergebnismenge zu verweisen, und gibt es wahr , dass mehr Ergebnissätze zu lesen sind.
  • Rufen Sie Fetch () und Fetchall () auf, um die Daten des aktuellen Ergebnissatzes zu lesen.
  • Speichernde Prozeduren können mehrere Ergebnissätze zurückgeben, und die Ausgabeparameter werden manchmal in ausgewählten Anweisungen zurückgegeben und können über Nextrowset () durchquert werden.
  • Denken Sie bei der Verwendung von PDO daran, Ausnahmen zu fangen, um die Sicherheit von Verbindung und Ausführung zu gewährleisten.

Zusammenfassen

Mit Pdostatement :: Nextrowset () können wir mehrere Ergebnissätze, die durch gespeicherte Prozeduren zurückgegeben werden, insbesondere für den Umgang mit Ausgabeparametern oder mehreren Abfragen gelesen werden. Eine angemessene Verwendung dieser Methode kann PHP mit gespeicherten Datenbankverfahren flexibler und effizienter gestalten.