diff options
Diffstat (limited to 'framework/DataAccess/adodb/adodb-iterator.inc.php')
-rw-r--r-- | framework/DataAccess/adodb/adodb-iterator.inc.php | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/framework/DataAccess/adodb/adodb-iterator.inc.php b/framework/DataAccess/adodb/adodb-iterator.inc.php new file mode 100644 index 00000000..926626c3 --- /dev/null +++ b/framework/DataAccess/adodb/adodb-iterator.inc.php @@ -0,0 +1,84 @@ +<?php + +/* + V4.72 21 Feb 2006 (c) 2000-2006 John Lim (jlim@natsoft.com.my). All rights reserved. + Released under both BSD license and Lesser GPL library license. + Whenever there is any discrepancy between the two licenses, + the BSD license will take precedence. + + Set tabs to 4. + + Declares the ADODB Base Class for PHP5 "ADODB_BASE_RS", and supports iteration with + the ADODB_Iterator class. + + $rs = $db->Execute("select * from adoxyz"); + foreach($rs as $k => $v) { + echo $k; print_r($v); echo "<br>"; + } + + + Iterator code based on http://cvs.php.net/cvs.php/php-src/ext/spl/examples/cachingiterator.inc?login=2 + */ + + + class ADODB_Iterator implements Iterator { + + private $rs; + + function __construct($rs) + { + $this->rs = $rs; + } + function rewind() + { + $this->rs->MoveFirst(); + } + + function valid() + { + return !$this->rs->EOF; + } + + function key() + { + return $this->rs->_currentRow; + } + + function current() + { + return $this->rs->fields; + } + + function next() + { + $this->rs->MoveNext(); + } + + function __call($func, $params) + { + return call_user_func_array(array($this->rs, $func), $params); + } + + + function hasMore() + { + return !$this->rs->EOF; + } + +} + + +class ADODB_BASE_RS implements IteratorAggregate { + function getIterator() { + return new ADODB_Iterator($this); + } + + /* this is experimental - i don't really know what to return... */ + function __toString() + { + include_once(ADODB_DIR.'/toexport.inc.php'); + return _adodb_export($this,',',',',false,true); + } +} + +?>
\ No newline at end of file |