PHP 5.6.0beta1 released

sqlite_fetch_all

SQLiteResult->fetchAll

SQLiteUnbuffered->fetchAll

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_fetch_all -- SQLiteResult->fetchAll -- SQLiteUnbuffered->fetchAll Holt sich alle Reihen eines Abfrageergebnisses und liefert sie als Array im Array zurück

Beschreibung

array sqlite_fetch_all ( resource $result [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

Objektorientierter Stil (Methode):

array fetchAll ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )
array fetchAll ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

sqlite_fetch_all() liefert ein Array des gesamten Abfrageergebnisses von der Ressource result zurück. Es ähnelt dem Aufruf von sqlite_query() (oder sqlite_unbuffered_query()) und danach sqlite_fetch_array()-Aufrufen für jede einzelne Reihe des Abfrageergebnisses.

Parameter-Liste

result

Die Ressource des SQLite-Ergebnisses. Der Parameter wird bei der objektorientierten Notation nicht benötigt.

result_type

Der optionale Parameter Ergebnis_Typ akzeptiert eine Konstante und bestimmt, wie das zurückgegebene Array indiziert wird. Während mit SQLITE_ASSOC nur assoziative Indizes (Namensfelder) zurückgegeben werden, werden mit SQLITE_NUM nur numerische Indizes (geordnete Feldnummern) zurückgegeben. SQLITE_BOTH gibt sowohl assoziative als auch numerische Indizes zurück. SQLITE_BOTH ist die Standardeinstellung.

decode_binary

Falls der Parameter decode_binary auf TRUE gesetzt ist (das ist die Standardeinstellung), dekodiert PHP die Binärkodierung, die bei Verwendung von sqlite_escape_string() auf die Daten angewendet wird. Solange Sie die Daten nicht mit anderen SQLite-Fähigen Applikationen teilen, sollten Sie diesen Wert in der Standardeinstellung lassen.

Rückgabewerte

Liefert ein Array mit den übrigen Reihen des Abfrageergebnisses. Wenn es direkt nach sqlite_query() aufgerufen wird, werden alle Reihen zurückgegeben. Wenn es nach sqlite_fetch_array() aufgerufen wird, wird der Rest zurückgegeben. Wenn es keine Reihen in einem Abfrageergebnis mehr gibt, liefert es ein leeres Array.

Die Groß- und Kleinschreibung der Spaltennamen, die von SQLITE_ASSOC und SQLITE_BOTH zurückgegeben werden, wird entsprechend der Konfigurationsdirektive sqlite.assoc_case geändert.

Beispiele

Beispiel #1 Prozedurales Beispiel

<?php
$dbhandle 
sqlite_open('sqlitedb');
$query sqlite_query($dbhandle'SELECT name, email FROM benutzer LIMIT 25');
$result sqlite_fetch_all($querySQLITE_ASSOC);
foreach (
$result as $entry) {
    echo 
'Name: ' $entry['name'] . '  E-Mail: ' $entry['email'];
}
?>

Beispiel #2 Objektorientiertes Beispiel

<?php
$dbhandle 
= new SQLiteDatabase('sqlitedb');

$query $dbhandle->query('SELECT name, email FROM benutzer LIMIT 25'); // gepuffertes Abfrageergebnis
$query $dbhandle->unbufferedQuery('SELECT name, email FROM benutzer LIMIT 25'); // ungepuffertes Abfrageergebnis

$result $query->fetchAll(SQLITE_ASSOC);
foreach (
$result as $entry) {
    echo 
'Name: ' $entry['name'] . '  E-Mail: ' $entry['email'];
}
?>

Siehe auch

  • sqlite_fetch_array() - Liest die nächste Zeile aus dem Datenbankergebnis und gibt sie als Array zurück

add a note add a note

User Contributed Notes 1 note

up
1
Minots Estich <minots at D0X dot de>
9 years ago
The usage of sqlite_fetch_all should be your choise
(instead the well known practice of "while()" loop)
when unmodified tabledata is prefered.

Example code for a better illustration:
<?php
if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)):
  
$query  = "SELECT x, y FROM sometable LIMIT 3;";
  
$result = sqlite_query($dbhandle, $query);

  
// usage with sqlite_fetch_all
  
$array1 = sqlite_fetch_all($result, SQLITE_ASSOC);

  
// the "well known practice"
  
$i = '0';
   while (
$row = sqlite_fetch_array($result, SQLITE_ASSOC)):
      
$array2["$i"] = $row;
      
$i++;
   endwhile;

  
sqlite_close($dbhandle);
endif;
?>

There are no differents within the values of array1 and array2.
Both arrays will be something like:

Array
(
    [0] => Array
        (
            [x] => 22004
            [y] => example_data1
        )

    [1] => Array
        (
            [x] => 92044
            [y] => example_data2
        )

    [2] => Array
        (
            [x] => 143060
            [y] => example_data3
        )
)

If you want to let me know about your comments, feel
free to send me a note via feedback-formular at:
http://www.d0x.de/pages/kontakt.php
To Top