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
SQLite3Result sınıfı
(Bir sürüm bilgisi bulunamadı; sadece SVN'de olabilir.)
Giriş
SQLite 3 eklentisi için sonuç kümesini temsil eden sınıf.
Sınıf Sözdizimi
SQLite3Result
{
/* Methods */
}İçindekiler
- SQLite3Result::columnName — Numarası belirtilen sütunun ismini döndürür
- SQLite3Result::columnType — Numarası belirtilen sütunun türünü döndürür
- SQLite3Result::fetchArray — Sonuç satırını bir dizi olarak döndürür
- SQLite3Result::finalize — Sonuç kümesini kapatır
- SQLite3Result::numColumns — Sonuç kümesindeki sütun sayısını döndürür
- SQLite3Result::reset — Sonuç kümesindeki geçerli satırı ilk satır yapar
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
