85 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
/*
 | 
						|
  V4.93 10 Oct 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);
 | 
						|
	}
 | 
						|
} 
 | 
						|
 | 
						|
 | 
						|
?>
 |