dbx_query
(PHP 4 >= 4.0.6, PHP 5 < 5.1.0, PECL dbx >= 1.1.0)
dbx_query — Sendet eine Abfrage und holt alle Ergebnisse (falls vorhanden)
Beschreibung
Sendet eine Abfrage und holt alle Ergebnisse.
Parameter-Liste
-
link_identifier
-
The DBX link object returned by dbx_connect()
-
sql_statement
-
SQL statement.
Data inside the query should be properly escaped.
-
flags
-
Der Parameter
flags
wird verwendet, um die Menge der zu liefernden Informationen zu steuern. Die folgenden Konstanten können mit dem Bit-Operator (|) beliebig kombiniert werden. Die Flags DBX_COLNAMES_* heben die Einstellungen dbx.colnames_case in der php.ini auf.-
DBX_RESULT_INDEX
-
Dieses Flag ist immer gesetzt, d.h. das
zurückgegebene Objekt hat eine Eigenschaft data,
welche aus einem zweidimensionalen, numerisch indizierten Array
besteht. Zum Beispiel steht in data[2][3] die
2 für die Reihen- (bzw. Datensatz-) Nummer, und
3 steht für die Spalten- (bzw. Feld- Nummer).
Die erste Reihe und Spalte haben den Index 0.
Ist
DBX_RESULT_ASSOC
ebenfalls angegeben, so enthält das zurückgegebene Objekt auch Informationen im Zusammenhang mitDBX_RESULT_INFO
, selbst wenn es nicht angegeben wurde. -
DBX_RESULT_INFO
- It provides info about columns, such as field names and field types.
-
DBX_RESULT_ASSOC
- Dies bewirkt, dass in der data Eigenschaft des zurückgegebenen Objektes auf die Werte eines Feldes mit den entsprechenden Spaltennamen als Schlüssel zugegriffen werden kann. Assoziierte Ergebnisse sind eigentlich Referenzen zu den numerisch indizierten Daten, weshalb eine Änderung von data[0][0] auch den Inhalt von data[0]['feldname_für_erste_spalte'] betrifft.
-
DBX_RESULT_UNBUFFERED
- Dieses Flag unterbindet die Erstellung der data Eigenschaft, und die rows Eigenschaft wird zunächst 0 sein. Das ist für große Datenmengen zu verwenden, wobei mit dbx_fetch_row() die Ergebnisse zeilenweise abgerufen werden. Die dbx_fetch_row() Funktion gibt Zeilen zurück, die mit den mit dieser Abfrage gesetzten Flags konform sind. Übrigens wird auch die rows Eigenschaft bei jedem Aufruf aktualisiert.
-
DBX_COLNAMES_UNCHANGED
- Die Groß-/Kleinschreibung der zurückgegebenen Spaltennamen bleibt unangetastet.
-
DBX_COLNAMES_UPPERCASE
- Die zurückgegebenen Spaltennamen werden in Großbuchstaben gewandelt.
-
DBX_COLNAMES_LOWERCASE
- Die zurückgegebenen Spaltennamen werden in Kleinbuchstaben gewandelt.
DBX_RESULT_INDEX
unabhängig von dem aktuell verwendeten Wert des Parametersflags
immer verwendet wird. Das heißt, dass es effektiv nur die folgenden Kombinationen gibt:-
DBX_RESULT_INDEX
-
DBX_RESULT_INDEX
|DBX_RESULT_INFO
-
DBX_RESULT_INDEX
|DBX_RESULT_INFO
|DBX_RESULT_ASSOC
- dies ist Standard, wennflags
nicht angegeben ist.
-
Rückgabewerte
dbx_query() gibt bei Erfolg ein Objekt oder
1 zurück, und 0 im
Fehlerfall. Das Objekt wird nur zurückgegeben, wenn die in
sql_statement
angegebene Abfrage eine
Ergebnisliste liefert (d.h. eine SELECT-Abfrage, selbst wenn die
Ergebnismenge leer ist).
Das zurückgegebene Objekt hat abhängig von flags
vier oder fünf Eigenschaften:
- handle
-
Das ein gültiges Handle für die verbundene Datenbank, und als solches kann es (wenn nötig) auch in modulspezifischen Funktionen verwendet werden.
<?php
$result = dbx_query($link, "SELECT id FROM table");
mysql_field_len($result->handle, 0);
?> - cols und rows
-
Diese enthalten die Anzahl der Spalten (oder Felder) bzw. Reihen (oder Datensätze).
<?php
$result = dbx_query($link, 'SELECT id FROM table');
echo $result->rows; // number of records
echo $result->cols; // number of fields
?> - info (optional)
-
Dies wird nur zurückgegeben, wenn im Parameter
flags
entwederDBX_RESULT_INFO
oderDBX_RESULT_ASSOC
spezifiziert sind. Es ist ein zweidimensionales Array mit zwei Reihen (name und type), welches die Spalteninformationen enthält.Beispiel #1 Auflistung von Name und Typ jedes Feldes
<?php
$result = dbx_query($link, 'SELECT id FROM table',
DBX_RESULT_INDEX | DBX_RESULT_INFO);
for ($i = 0; $i < $result->cols; $i++ ) {
echo $result->info['name'][$i] . "\n";
echo $result->info['type'][$i] . "\n";
}
?> - data
-
Diese Eigenschaft enthält die aktuellen Ergebnisdaten, möglicherweise
auch mit den Spaltennamen assoziiert, was jedoch vom Parameter
flags
abhängig ist. WennDBX_RESULT_ASSOC
gesetzt ist, kann $result->data[2]["feldname"] verwendet werden.Beispiel #2 Ausgabe des Inhaltes der data Eigenschaft in eine HTML Tabelle
<?php
$result = dbx_query($link, 'SELECT id, parentid, description FROM table');
echo "<table>\n";
foreach ($result->data as $row) {
echo "<tr>\n";
foreach ($row as $field) {
echo "<td>$field</td>";
}
echo "</tr>\n";
}
echo "</table>\n";
?>Beispiel #3 Umgang mit UNGEPUFFERTEN Abfragen
<?php
$result = dbx_query ($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);
echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
echo "<tr>\n";
foreach ($row as $field) {
echo "<td>$field</td>";
}
echo "</tr>\n";
}
echo "</table>\n";
?>
Beispiele
Beispiel #4 Wie mit dem gelieferten Wert umgegangen wird
<?php
$link = dbx_connect(DBX_ODBC, "", "db", "username", "password")
or die("Fehler beim Verbinden");
$result = dbx_query($link, 'SELECT id, parentid, description FROM table');
if (is_object($result)) {
// ... tue hier irgendetwas, detaillierte Beispiele siehe unten ...
// erst die Ausgabe der Feldnamen und Typen
// dann die Ausgabe einer Tabelle mit den gelieferten Werten
} else {
exit("Abfrage ist fehlgeschlagen");
}
dbx_close($link);
?>
Anmerkungen
Hinweis:
Die Modul spezifische Dokumentation sollte ebenfalls konsultiert werden.
Spaltennamen für Anfragen an eine Oracle Datenbank werden in Kleinbuchstaben zurückgegeben.
Siehe auch
- dbx_escape_string() - Maskiert einen String, so dass er sicher in einem SQL-Statement verwendet werden kann
- dbx_fetch_row() - Liest Zeilen aus einem Abfrageergebnis, das das DBX_RESULT_UNBUFFERED-Flag gesetzt hat
- dbx_connect() - Öffnet eine Verbindung/Datenbank
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-dbx-query.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.