downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

SQLite3Result::columnName> <SQLite3Stmt::reset
[edit] Last updated: Fri, 25 May 2012

view this page in

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 */
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 )
}

Tabla de contenidos



SQLite3Result::columnName> <SQLite3Stmt::reset
[edit] Last updated: Fri, 25 May 2012
 
add a note add a note User Contributed Notes SQLite3Result
alan71-at-free-fr 27-Dec-2010 11: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 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

 
show source | credits | stats | sitemap | contact | advertising | mirror sites