[Editor's note: to get short column names there's an undocumented PRAGMA setting. You can exec "PRAGMA short_column_names = ON" to force that behavior.]
I noticed that if you use Joins in SQL queries, the field name is messed up with the dot!
for example if you have this query:
SELECT n.*, m.nickname FROM news AS n, members AS m WHERE n.memberID = m.id;
now if you want to print_r the results returned using SQLITE_ASSOC type, the result array is like this :
array
(
[n.memberID] => 2
[n.title] => test title
[m.nickname] => NeverMind
[tablename.fieldname] => value
)
and I think it looks horriable to use the variable ,for example, $news['m.nickname'] I just don't like it!
so I've made a small function that will remove the table name (or its Alias) and will return the array after its index is cleaned
<?php
function CleanName($array)
{
foreach ($array as $key => $value) {
//if you want to keep the old element with its key remove the following line
unset($array[$key]);
//now we clean the key from the dot and tablename (alise) and set the new element
$key = substr($key, strpos($key, '.')+1);
$array[$key] = $value;
}
return $array;
}
?>
sqlite_fetch_array
SQLiteResult->fetch
SQLiteUnbuffered->fetch
(No version information available, might be only in CVS)
SQLiteUnbuffered->fetch — Lit la prochaine ligne de résultat SQLite dans un tableau
Description
Style orienté objet :
sqlite_fetch_array() lit la prochaine ligne dans le résultat result . S'il n'y a pas d'autres lignes, sqlite_fetch_array() retourne FALSE et, sinon, elle retourne un tableau représentant les données lues.
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_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.
- decode_binary
-
Lorsque decode_binary vaut TRUE (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 suivante du jeu de résultats: FALSE si la position suivante 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');
while ($entry = sqlite_fetch_array($query, SQLITE_ASSOC)) {
echo 'Name: ' . $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ésultat bufférisé
$query = $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // jeu de résultat non bufférisé
while ($entry = $query->fetch(SQLITE_ASSOC)) {
echo 'Name: ' . $entry['name'] . ' E-mail: ' . $entry['email'];
}
?>
sqlite_fetch_array
10-May-2004 03:12
