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
Descrierea
$dbhandle
, string $query
[, int $result_type = SQLITE_BOTH
[, bool $decode_binary = true
]] )$query
, resource $dbhandle
[, int $result_type = SQLITE_BOTH
[, bool $decode_binary = true
]] )Stil obiect-orientat (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.
Parametri
-
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 -
Parametrul opțional
result_typeacceptă o constantă și determină cum tablouul întors va fi indexat. UtilizândSQLITE_ASSOCvor fi întorși numai indici asociativi (câmpuri denumite) în timp ce cuSQLITE_NUMvor fi întorși numai indici numerici (numerele de ordine ale câmpurilor). CuSQLITE_BOTHvor fi întorși atât indici associativi, cât și numerici.SQLITE_BOTHeste valoarea implicită pentru această funcție. -
decode_binary -
Când parametrul
decode_binaryeste stabilit înTRUE(implicit), PHP va decodifica codificarea binară pe care a aplicat-o asupra datelor, dacă acestea au fost codificate cu sqlite_escape_string (). În mod normal ar trebui să lăsați valoarea implicită, dacă nu interoperați cu baze de date create de alte aplicații capabile să lucreze cu sqlite.
Notă: Două sintaxe alternative sunt susținute pentru compatibilitate cu alte extensii de baze de date (cum ar fi MySQL). Forma preferată este cea dintâi, unde parametrul
dbhandleeste primul parametru pentru funcție.
Valorile întoarse
Returns an array of the entire result set; FALSE otherwise.
În
denumirile coloanelor întoarse de SQLITE_ASSOC și
SQLITE_BOTH vor fi utilizate litere majuscule/minuscule
în corespundere cu valoarea opțiunii de configurare
sqlite.assoc_case.
Exemple
Example #1 Stil procedural
<?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'];
}
?>
Example #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'];
}
?>
Vedeți de asemenea
- 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() - Pseudonim pentru sqlite_fetch_single
