SQLite3
在线手册:中文  英文

SQLite3Result 类

(PHP 5 >= 5.3.0)

简介

处理 SQLite 3 扩展返回结果集的类。

类摘要

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
在线手册:中文  英文

用户评论:

alan71-at-free-fr (2010-12-28 06:34:00)

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 (2010-03-08 02:34:20)

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

jonscully at gmail dot com (2009-11-30 01:35:09)

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

易百教程