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 — Esegue una query in un dato database e restituisce una matrice
Descrizione
$dbhandle
, string $query
[, int $result_type = SQLITE_BOTH
[, bool $decode_binary = true
]] )$query
, resource $dbhandle
[, int $result_type = SQLITE_BOTH
[, bool $decode_binary = true
]] )Stile orientato agli oggetti (metodo):
$query
[, int $result_type = SQLITE_BOTH
[, bool $decode_binary = true
]] )sqlite_array_query() esegue una data query e restituisce un array con l'intero set di risultati. E' simile a sqlite_query() e a eseguire sqlite_fetch_array() per ogni riga. sqlite_array_query() è significativamente più veloce.
Le migliori performance con sqlite_array_query() si ottengono con query che restituiscono fino a 45 righe. Se si hanno invece più dati, si raccomanda di scrivere una propria funzione e di utilizzare sqlite_unbuffered_query() per performance migliori.
Elenco dei parametri
-
query -
Query da eseguire.
I dati all'interno delle query devono essere propriamente modificati con una funzione di escape.
-
dbhandle -
Risorsa SQLite Database; restituita da sqlite_open () quando usato in modo procedurale. Questo parametro non è richiesto nel metodo ad oggetti.
-
result_type -
Il parametro opzionale
result_typeaccetta una costante e determina come l'array restituito sarà indicizzato. UsandoSQLITE_ASSOCrestituirà solo indici associativi (campi nominali) mentreSQLITE_NUMrestituirà solo indici numerici (campi numerici ordinali).SQLITE_BOTHrestituirà sia gli indici associativi che numerici.SQLITE_BOTHè il default per questa funzione. -
decode_binary -
Quando
decode_binaryè impostato aTRUE(per default), il PHP decodificherà i dati binari se questi furono codificati con la funzione sqlite_escape_string(). Normalmente si dovrebbe lasciare inalterato il comportamento di default, a meno che non si debba intervenire su database creati da altre applicazioni SQLite.
Nota: Due sintassi alternative sono supportate per compatibilità con altre estensioni di database (come MySQL). La forma preferita è la prima, dove il parametro
dbhandleè il primo parametro per la funzione.
Valori restituiti
Restituisce un array contenente tutti i risultati; oppure FALSE.
I nomi delle colonne restituiti da
SQLITE_ASSOC e da SQLITE_BOTH saranno
maiuscoli o minuscoli in base al valore del parametro di configurazione
sqlite.assoc_case
.
Esempi
Example #1 Stile procedurale
<?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 Stile ad oggetti
<?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'];
}
?>
Vedere anche:
- sqlite_query() - Esegue una query su un database e restituisce un puntatore al set di risultati
- sqlite_fetch_array() - Scarica in un array la riga successiva da un set di risultati
- sqlite_fetch_string() - Alias di sqlite_fetch_single
