note 101589 modified in class.sqlite3result by danbrown

From: Date: Tue, 28 Dec 2010 16:19:30 +0000
Subject: note 101589 modified in class.sqlite3result by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-175280@lists.php.net to get a copy of this message
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 --was-- Nevermind my previous note, it got mixed up with some other code and SQLite3Result does not implement those interfaces. But 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 http://php.net/manual/en/class.sqlite3result.php

« previous php.notes (#175280) next »