Start · Sprachen · PHP · Referenz · mysql_xdevapi\RowResult

mysql_xdevapi\RowResult

Klasse

Repräsentiert das zeilenbasierte Ergebnis einer SQL-Abfrage über die MySQL X DevAPI und bietet Zugriff auf einzelne Zeilen und Spalteninformationen.

seit PHP 8.0.0 Kategorie: db

Signatur

class mysql_xdevapi\RowResult implements mysql_xdevapi\Result

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();
ID: 1, Name: Alice, E-Mail: alice@example.com ID: 2, Name: Bob, E-Mail: bob@example.com ...

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();
Spaltenanzahl: 2 Spalte: id (Typ: INT) Spalte: name (Typ: BYTES) Produkt-ID: 3, Name: Widget ...

// 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.