Signatur
Beschreibung
mysql_xdevapi\RowResult wird zurückgegeben, wenn eine SQL-Abfrage über die MySQL X DevAPI ausgeführt wird, z. B. über Session::sql(). Das Objekt kapselt das tabellarische Ergebnis und ermöglicht den zeilenweisen Zugriff auf die Rückgabedaten.
Im Gegensatz zu dokumentenbasierten Ergebnissen (DocResult) liefert RowResult die Daten als numerisch oder assoziativ indizierte Arrays – ideal für klassische relationale Abfragen. Jede Zeile wird als Array zurückgegeben, dessen Schlüssel die Spaltennamen repräsentieren.
Die Klasse implementiert das mysql_xdevapi\Result-Interface und stellt Methoden bereit, um alle Zeilen auf einmal (fetchAll()) oder einzeln (fetchOne()) abzurufen. Zusätzlich können Spalteninformationen über getColumns() bzw. getColumnCount() abgefragt werden.
Typische Anwendungsfälle sind direkte SQL-Abfragen an eine MySQL-Datenbank über das X Protocol, bei denen strukturierte, tabellarische Ergebnisse erwartet werden.
Beispiele
Alle Zeilen einer SQL-Abfrage abrufen
<?php
// Verbindung über X DevAPI herstellen
$session = mysql_xdevapi\getSession('mysqlx://user:password@localhost');
/** @var mysql_xdevapi\RowResult $result */
$result = $session->sql('SELECT id, name, email FROM users LIMIT 5')->execute();
// Alle Zeilen als Array holen
$rows = $result->fetchAll();
foreach ($rows as $row) {
echo 'ID: ' . $row['id'] . ', Name: ' . $row['name'] . ', E-Mail: ' . $row['email'] . PHP_EOL;
}
$session->close();
Zeilen einzeln lesen und Spalteninformationen abfragen
<?php
$session = mysql_xdevapi\getSession('mysqlx://user:password@localhost');
$result = $session->sql('SELECT id, name FROM products WHERE price > 10')->execute();
// Anzahl der Spalten ermitteln
$columnCount = $result->getColumnCount();
echo 'Spaltenanzahl: ' . $columnCount . PHP_EOL;
// Spalteninformationen ausgeben
foreach ($result->getColumns() as $column) {
echo 'Spalte: ' . $column->getColumnName() . ' (Typ: ' . $column->getType() . ')' . PHP_EOL;
}
// Zeilen einzeln lesen
while ($row = $result->fetchOne()) {
echo 'Produkt-ID: ' . $row['id'] . ', Name: ' . $row['name'] . PHP_EOL;
}
$session->close();
// Wichtig · Fallstricke
Erweiterung erforderlich: Die mysql_xdevapi-Erweiterung ist eine separate PECL-Erweiterung und nicht standardmäßig in PHP enthalten. Sie muss manuell installiert und in der php.ini aktiviert werden (extension=mysql_xdevapi). Außerdem wird ein MySQL-Server mit aktiviertem X Plugin (Port 33060) benötigt.
Nicht verwechseln mit der veralteten mysql_*-API oder mysqli. Die X DevAPI kommuniziert über das MySQL X Protocol und ist für moderne MySQL 8.x-Installationen konzipiert.
Die Erweiterung gilt noch als experimentell. API-Änderungen zwischen Versionen sind möglich. Für produktiven Einsatz wird empfohlen, die offizielle Dokumentation der jeweiligen Version zu prüfen.