(PHP 5, PECL sqlite >= 1.0.0)
sqlite_array_query -- SQLiteDatabase->arrayQuery — Führt eine Datenbankabfrage durch und liefert das gesamte Abfrageergebnis als Liste zurück
Objektorientierter Stil (Methode):
sqlite_array_query() führt die übergebene Anfrage aus und liefert die gesamte Ergebnisliste zurück. Die Funktion verhält sich vergleichbar mit der Nutzung von sqlite_query() und dann sqlite_fetch_array() für jede Zeile des Abfrageergebisses. Die Nutzung von sqlite_array_query() ist deutlich schneller als das folgende Script:
sqlite_array_query() ist am besten für Abfragen geeignet, die fünfundvierzig und weniger Ergebniszeilen zurückliefern. Wenn Sie mehr Daten haben, sollten Sie Ihre Scripte eher mit sqlite_unbuffered_query() schreiben, um eine optimale Geschwindigkeit zu erzielen.
Die auszuführende Abfrage.
Daten innerhalb einer Anfrage sollten maskiert werden.
Die Ressource des SQLite-Ergebnisses, erzeugt von sqlite_open() wenn in prozeduralem Kontext genutzt. Dieser Parameter wird nicht benötigt, wenn die objektorientierte Methodik genutzt wird.
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.
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.
Hinweis: Zwei alternative Syntaxen werden für die Kompatibilität mit anderen Datenbank-Erweiterungen (wie z.B. MySQL) unterstützt. Die bevorzugte Form ist die erste, bei der der Parameter dbhandle der erste Parameter der Funktion ist.
Liefert eine Liste der gesamten Ergebnismenge oder FALSE zurück.
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.
Beispiel #1 Prozeduraler Stil
<?php
$dbhandle = sqlite_open('sqlitedb');
$result = sqlite_array_query($dbhandle, 'SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach ($result as $entry) {
echo 'Name: ' . $entry['name'] . ' E-mail: ' . $entry['email'];
}
?>
Beispiel #2 Objektorientierter Stil
<?php
$dbhandle = new SQLiteDatabase('sqlitedb');
$result = $dbhandle->arrayQuery('SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach ($result as $entry) {
echo 'Name: ' . $entry['name'] . ' E-mail: ' . $entry['email'];
}
?>
Do not use this code, whenever you may get no result:
<?
$return_data=@sqlite_array_query($query,$databaseHandle);
if(!$return_data)
{
//Errorhandling code
die( sqlite_error_string( sqlite_last_error($this->databaseHandle) ) );
}
?>
It will execute the Errorhandling code although there is no error, cause if there is nothing found, sqlite_array_query returns an empty array, which is interpreted as 'false' here.
You will get an Message like:
'not an error'
Instead use:
<?
$return_data=@sqlite_array_query($query,$databaseHandle);
if($return_data===false)
{
//Errorhandling code
}
?>