PHP 5.6.0RC3 is available

dbx_query

(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)

Beschreibung

object dbx_query ( object $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 == ) {
    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
Dieser Flag ist immer gesetzt, d.h. dass 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 mit DBX_RESULT_INFO, selbst wenn es nicht angegeben wurde.
DBX_RESULT_INFO
Liefert Informationen über Spalten, wie Feldnamen und Feldtypen.
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_COLNAMES_UNCHANGED (available from PHP 4.3.0)
The case of the returned column names will not be changed.
DBX_COLNAMES_UPPERCASE (available from PHP 4.3.0)
The case of the returned column names will be changed to uppercase.
DBX_COLNAMES_LOWERCASE (available from PHP 4.3.0)
The case of the returned column names will be changed to lowercase.
Beachten Sie, dass 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:

handle

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);

cols und rows

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

info (optional)
Dies wird nur zurückgegeben, wenn im Parameter 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";
}
data
Diese Eigenschaft enthält die aktuellen Ergebnisdaten, möglicherweise auch mit den Spaltennamen assoziiert, was jedoch vom Parameter 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().

add a note add a note

User Contributed Notes 1 note

up
0
BeyondMat
9 years ago
You can use stored procedures instead of having to specify a text string to execute, e.g.

$results = dbx_query($conn, 'sp_Test');

This executes the stored procedure sp_Test.
To Top