[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
(PHP 5, PECL sqlite >= 1.0.0)
sqlite_fetch_array -- SQLiteResult->fetch -- SQLiteUnbuffered->fetch — Fetches the next row from a result set as an array
Descripción
Object oriented style (method):
Fetches the next row from the given result handle. If there are no more rows, returns FALSE, otherwise returns an associative array representing the row data.
Parámetros
- result
-
The SQLite result resource. This parameter is not required when using the object-oriented method.
- result_type
-
El parámetro opcional result_type acepta una constante y determina cómo se indexará el array devuelto. Usar SQLITE_ASSOC devolverá índices asociativos (los nombres de los campos) mientras que SQLITE_NUM devolverá sólo índices numéricos (los campos en números ordinales). SQLITE_BOTH devolverá índices tanto asociativos como numéricos. SQLITE_BOTH es el valor por defecto para esta función.
- decode_binary
-
Cuando el parámetro decode_binary es seteado a TRUE (el valor por defecto), PHP decodificará la codificación binaria que se aplicó a los datos si éstos fueron codificados usando la función sqlite_escape_string(). Normalmente debería dejar este valor por defecto, a menos que esté interoperando con bases de datos creadas por otras aplicaciones sqlite.
Valores devueltos
Returns an array of the next row from a result set; FALSE if the next position is beyond the final row.
Los nombre de las columnas devueltos por SQLITE_ASSOC y SQLITE_BOTH serán mayúsculas o no de acuerdo al valor de la opción de configuración sqlite.assoc_case.
Ejemplos
Example #1 Procedural example
<?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'];
}
?>
Example #2 Object-oriented example
<?php
$dbhandle = new SQLiteDatabase('sqlitedb');
$query = $dbhandle->query('SELECT name, email FROM users LIMIT 25'); // buffered result set
$query = $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // unbuffered result set
while ($entry = $query->fetch(SQLITE_ASSOC)) {
echo 'Name: ' . $entry['name'] . ' E-mail: ' . $entry['email'];
}
?>
Ver también
- sqlite_array_query() - Execute a query against a given database and returns an array
- sqlite_fetch_string() - Alias de sqlite_fetch_single
