(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)
dbx_query — Sendet eine Abfrage und holt alle Ergebnisse (falls vorhanden)
$link_identifier
, string $sql_statement
[, long $flags
] )
dbx_query() gibt bei Erfolg ein Objekt oder
1 zurück, oder 0 im
Fehlerfall. Das Objekt wird nur zurückgegeben, wenn die in
sql_statement
angegebene Abfrage eine
Ergebnisliste liefert.
Beispiel #1 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 if ( $result == 1 ) {
echo("Abfrage wurde erfolgreich ausgeführt, jedoch keine Ergebnisse");
}
else {
exit("Fehler bei Abfrage");
}
dbx_close($link);
?>
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
DBX_RESULT_ASSOC
ebenfalls angegeben,
so enthält das zurückgegebene Objekt auch Informationen im
Zusammenhang mit DBX_RESULT_INFO
, selbst
wenn es nicht angegeben wurde.
DBX_RESULT_INFO
DBX_RESULT_ASSOC
DBX_COLNAMES_UNCHANGED
(available from PHP 4.3.0)
DBX_COLNAMES_UPPERCASE
(available from PHP 4.3.0)
DBX_COLNAMES_LOWERCASE
(available from PHP 4.3.0)
DBX_RESULT_INDEX
unabhängig von
dem aktuell verwendeten Wert des Parameters flags
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, wenn
flags
nicht angegeben ist.
Das zurückgegebene Objekt hat abhängig von flags
vier oder fünf Eigenschaften:
Das ein gültiges Handle für die verbundene Datenbank, und als solche kann es (wenn nötig) auch in modulspezifischen Funktionen verwendet werden.
$result = dbx_query ($link, "SELECT id FROM table"); mysql_field_len ($result->handle, 0);
Diese enthalten die Anzahl der Spalten (oder Felder) bzw. Reihen (oder Datensätze).
$result = dbx_query ($link, 'SELECT id FROM table');
echo $result->rows; // Anzahl der Datensätze
echo $result->cols; // Anzahl der Felder
flags
entweder
DBX_RESULT_INFO
oder
DBX_RESULT_ASSOC
spezifiziert sind.
Es ist ein zweidimensionales Array mit zwei Reihen
(name und type),
welches die Spalteninformationen enthält.
Beispiel #2 Auflistung von Name und Typ jedes Feldes
$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";
}
flags
abhängig ist. Wenn
DBX_RESULT_ASSOC
gesetzt ist, können Sie
$result->data[2]["feldname"] verwenden.
Beispiel #3 Ausgabe des Inhaltes der data Eigenschaft in eine HTML Tabelle
$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";
Hinweis:
Konsultieren Sie bitte auch die modulspezifische Dokumentation.
Spaltennamen für Abfragen an einer Oracle Datenbank werden in Kleinbuchstaben zurückgegeben.
Siehe auch dbx_escape_string() und dbx_connect().