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
}
?>
sqlite_array_query
SQLiteDatabase::arrayQuery
(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
sqlite_array_query -- SQLiteDatabase::arrayQuery — Execute a query against a given database and returns an array
Opis
$dbhandle
, string $query
[, int $result_type = SQLITE_BOTH
[, bool $decode_binary = true
]] )$query
, resource $dbhandle
[, int $result_type = SQLITE_BOTH
[, bool $decode_binary = true
]] )Styl obiektowy (method):
$query
[, int $result_type = SQLITE_BOTH
[, bool $decode_binary = true
]] )sqlite_array_query() executes the given query and returns an array of the entire result set. It is similar to calling sqlite_query() and then sqlite_fetch_array() for each row in the result set. sqlite_array_query() is significantly faster than the aforementioned.
sqlite_array_query() is best suited to queries returning 45 rows or less. If you have more data than that, it is recommended that you write your scripts to use sqlite_unbuffered_query() instead for more optimal performance.
Parametry
-
query -
The query to be executed.
Data inside the query should be properly escaped.
-
dbhandle -
The SQLite Database resource; returned from sqlite_open() when used procedurally. This parameter is not required when using the object-oriented method.
-
result_type -
Opcjonalny parametr
result_typeprzyjmuje wartości stałych i określa jak indeksowane będą zwracane wartości. UżywającSQLITE_ASSOCzwrócone zostaną tylko indeksy asocjacyjne (nazwy pól), podczas gdySQLITE_NUMzwróci tylko indeksy numeryczne (numery pól).SQLITE_BOTHzwróci i indeksy asocjacyjne i numeryczne.SQLITE_BOTHjest domyślną wartością dla tej funkcji. -
decode_binary -
Gdy parametr
decode_binaryzostanie ustawiony naTRUE(domyślnie), PHP zdekoduje kodowanie binarne, któremu zostały poddane dane, jeśli były kodowane przy użyciu funkcji sqlite_escape_string(). Zazwyczaj należy pozostawić domyślną wartość tego parametru, chyba że baza jest współużytkowana przez różne aplikacje.
Informacja: Obsługiwane są dwie alternatywne składnie, dla zachowania kompatybilności z rozszerzeniami dla innych baz danych (takich jak MySQL). Preferowana jest pierwsza, gdzie
dbhandlejest pierwszym parametrem funkcji.
Zwracane wartości
Returns an array of the entire result set; FALSE otherwise.
Wielkość liter w nazwach kolumn zwróconych przez
SQLITE_ASSOC i SQLITE_BOTH zostaną
przetworzone zależnie od ustawienia opcji konfiguracji
sqlite.assoc_case.
Przykłady
Przykład #1 Styl proceduralny
<?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'];
}
?>
Przykład #2 Object-oriented style
<?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'];
}
?>
Zobacz też:
- sqlite_query() - Executes a query against a given database and returns a result handle
- sqlite_fetch_array() - Fetches the next row from a result set as an array
- sqlite_fetch_string() - Alias dla sqlite_fetch_single
