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
sqlite_fetch_all
SQLiteResult::fetchAll
SQLiteUnbuffered::fetchAll
(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
sqlite_fetch_all -- SQLiteResult::fetchAll -- SQLiteUnbuffered::fetchAll — Retourne toutes les lignes d'un jeu de résultats en tant que tableau de tableaux
Description
$result
[, int $result_type = SQLITE_BOTH
[, bool $decode_binary = true
]] )Style orienté objet (méthode) :
$result_type = SQLITE_BOTH
[, bool $decode_binary = true
]] )$result_type = SQLITE_BOTH
[, bool $decode_binary = true
]] )Retourne un tableau des lignes restantes dans le jeu de résultats. Si appelée juste après sqlite_query(), elle retourne toutes les lignes. Si appelée après sqlite_fetch_array(), elle retourne le reste. S'il n'y a plus de lignes disponibles dans le jeu de résultats, elle retourne un tableau vide.
Liste de paramètres
-
result -
La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.
-
result_type -
Le paramètre optionnel
result_typeaccepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation deSQLITE_ASSOCretournera uniquement un tableau associatif (nom des champs) tandis queSQLITE_NUMretournera un tableau indexé numériquement (numéro ordinal des champs).SQLITE_BOTHretournera des indices numériques et associatifs.SQLITE_BOTHest la valeur par défaut pour cette fonction. -
decode_binary -
Lorsque
decode_binaryvautTRUE(par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.
Valeurs de retour
Retourne un tableau de la ligne courante du jeu de résultats : FALSE si la
position courante est au-delà de la dernière ligne.
Les noms de colonnes retournés par
SQLITE_ASSOC et SQLITE_BOTH
suivent les règles concernant la case définie par l'option de configuration
sqlite.assoc_case.
Exemples
Exemple #1 Style procédural
<?php
$dbhandle = sqlite_open('sqlitedb');
$query = sqlite_query($dbhandle, 'SELECT name, email FROM users LIMIT 25');
$result = sqlite_fetch_all($query, SQLITE_ASSOC);
foreach ($result as $entry) {
echo 'Nom : ' . $entry['name'] . ' E-mail : ' . $entry['email'];
}
?>
Exemple #2 Style orienté objet
<?php
$dbhandle = new SQLiteDatabase('sqlitedb');
$query = $dbhandle->query('SELECT name, email FROM users LIMIT 25'); // jeu de résultats bufférisé
$query = $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // jeu de résultats non bufférisé
$result = $query->fetchAll(SQLITE_ASSOC);
foreach ($result as $entry) {
echo 'Nom : ' . $entry['name'] . ' E-mail : ' . $entry['email'];
}
?>
