Signatur
Beschreibung
odbc_result_all() liest sämtliche Datensätze eines ODBC-Ergebnisses und gibt sie direkt als vollständige HTML-Tabelle auf die Standardausgabe aus. Die erste Zeile der Tabelle enthält automatisch die Spaltennamen als Tabellenköpfe (<th>), alle weiteren Zeilen enthalten die eigentlichen Daten.
Der optionale Parameter $format erlaubt es, eigene HTML-Attribute für das <table>-Tag zu übergeben – etwa "border=1 class='mytable'". Auf diese Weise kann die Tabelle einfach gestaltet werden, ohne den generierten HTML-Code manuell aufbauen zu müssen.
Die Funktion eignet sich vor allem für schnelle Prototypen, Administrationstools oder Debug-Ausgaben, bei denen eine schöne Visualisierung der Abfrageergebnisse ohne viel Aufwand gewünscht ist. Für produktive Anwendungen mit individuellem Layout empfiehlt es sich, die Daten mit odbc_fetch_row() und odbc_result() manuell zu verarbeiten.
Nach dem Aufruf ist der interne Zeiger des Ergebnis-Sets erschöpft. Ein erneuter Aufruf liefert keine Zeilen mehr, sofern der Cursor nicht zurückgesetzt werden kann.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $statement Pflicht | resource | Ein gültiges ODBC-Ergebnis-Handle, das von odbc_exec() oder odbc_execute() zurückgegeben wurde. |
|
| $format | string | Optionale zusätzliche HTML-Attribute, die dem öffnenden <table>-Tag hinzugefügt werden, z. B. "border=1 width='100%'". |
Rückgabewert
int zurück, oder false bei einem Fehler (z. B. ungültiges Handle).Beispiele
Einfache Ausgabe einer ODBC-Abfrage als HTML-Tabelle
<?php
// Verbindung zur ODBC-Datenquelle aufbauen
$conn = odbc_connect('MeineDSN', 'benutzer', 'passwort');
if (!$conn) {
die('Verbindung fehlgeschlagen: ' . odbc_errormsg());
}
// SQL-Abfrage ausführen
$result = odbc_exec($conn, 'SELECT id, name, email FROM benutzer');
if (!$result) {
die('Abfrage fehlgeschlagen: ' . odbc_errormsg($conn));
}
// Alle Ergebnisse direkt als HTML-Tabelle ausgeben
$anzahl = odbc_result_all($result, 'border="1" cellpadding="4" style="border-collapse:collapse"');
echo "<p>Insgesamt $anzahl Datensätze ausgegeben.</p>";
odbc_free_result($result);
odbc_close($conn);
?>
Debug-Ausgabe ohne Formatierung
<?php
// Schnelle Debug-Ausgabe ohne besondere Tabellenformatierung
$conn = odbc_connect('TestDSN', 'admin', 'geheim');
$result = odbc_exec($conn, 'SELECT * FROM produkte WHERE preis > 100');
echo '<h2>Produkte über 100 EUR</h2>';
$zeilen = odbc_result_all($result);
echo "<p>$zeilen Produkte gefunden.</p>";
odbc_free_result($result);
odbc_close($conn);
?>
// Wichtig · Fallstricke
Sicherheitshinweis: odbc_result_all() gibt Datenbankwerte ungefiltert als HTML aus. Enthält die Datenbank benutzergenerierte Inhalte, können XSS-Angriffe möglich sein. Die Funktion sollte daher niemals für die Ausgabe von nicht vertrauenswürdigen Daten in produktiven Webanwendungen eingesetzt werden.
Deprecated / Veraltet: Die ODBC-Extension und speziell Hilfsfunktionen wie odbc_result_all() gelten als veraltet und werden in modernen PHP-Projekten kaum noch eingesetzt. Für neue Projekte empfiehlt sich PDO mit dem ODBC-Treiber (PDO_ODBC).
Da die Funktion den HTML-Code direkt ausgibt (und nicht zurückgibt), lässt sich die Ausgabe nur mit Output-Buffering (ob_start()) abfangen und weiterverarbeiten.