SQLite3
在线手册:中文 英文
PHP手册

The SQLite3Result class

(No version information available, might only be in SVN)

简介

A class that handles result sets for the SQLite 3 extension.

类摘要

SQLite3Result {
/* 方法 */
public string columnName ( int $column_number )
public int columnType ( int $column_number )
public array fetchArray ([ int $mode = SQLITE3_BOTH ] )
public bool finalize ( void )
public int numColumns ( void )
public bool reset ( void )
}

Table of Contents


SQLite3
在线手册:中文 英文
PHP手册
PHP手册 - N: The SQLite3Result class

用户评论:

alan71-at-free-fr (28-Dec-2010 02:34)

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

claudiu at virtuamagic dot com (08-Mar-2010 10:34)

fetchArray() will return bool(false) in case of 0 rows.

jonscully at gmail dot com (30-Nov-2009 09: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