Here's a snippet that might help you to write a fetchObject function that is also missing:
<?php
function fetchObject($sqlite3result, $objectType = NULL) {
$array = $sqlite3result->fetchArray();
if(is_null($objectType)) {
$object = new stdClass();
} else {
// does not call this class' constructor
$object = unserialize(sprintf('O:%d:"%s":0:{}', strlen($objectType), $objectType));
}
$reflector = new ReflectionObject($object);
for($i = 0; $i < $sqlite3result->numColumns(); $i++) {
$name = $sqlite3result->columnName($i);
$value = $array[$name];
try {
$attribute = $reflector->getProperty($name);
$attribute->setAccessible(TRUE);
$attribute->setValue($object, $value);
} catch (ReflectionException $e) {
$object->$name = $value;
}
}
return $object;
}
?>
Heavily inspired of Bergmann's Object Freezer :
https://github.com/sebastianbergmann/php-object-freezer/blob/master/Object/Freezer.php
La clase SQLite3Result
(No hay información de versión disponible, podría estar únicamente en SVN)
Introducción
La clase que controla los resultados establecidos para la extensión SQLite 3.
Sinopsis de la Clase
SQLite3Result
{
/* Métodos */
}Tabla de contenidos
- SQLite3Result::columnName — Devolver el nombre de la columna n-ésima
- SQLite3Result::columnType — Devolver el tipo de la columna n-ésima
- SQLite3Result::fetchArray — Obtener una fila de resultados en forma de un array asociativo o indexado o ambos
- SQLite3Result::finalize — Cerrar el conjunto de resultados
- SQLite3Result::numColumns — Devolver el número de columnas del conjunto de resultados
- SQLite3Result::reset — Reiniciar el conjunto de resultados a la primera fila
alan71-at-free-fr
27-Dec-2010 11:34
claudiu at virtuamagic dot com
07-Mar-2010 07:34
fetchArray() will return bool(false) in case of 0 rows.
jonscully at gmail dot com
29-Nov-2009 06:35
Since SQLite3Result::numRows is unavailable, use:
<?php
if ($res->numColumns() && $res->columnType(0) != SQLITE3_NULL) {
// have rows
} else {
// zero rows
}
?>
Because when there are zero rows:
* SQLite3Result::fetchArray will return '1'
* SQLite3Result::numColumns will return '1'
* Column type for column '0' will be SQLITE3_NULL
