Subversion Repositories svnkaklik

Rev

Details | Last modification | View Log

Rev Author Line No. Line
36 kaklik 1
<?php
2
 
3
/*
4
  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim@natsoft.com.my). All rights reserved.
5
  Released under both BSD license and Lesser GPL library license. 
6
  Whenever there is any discrepancy between the two licenses, 
7
  the BSD license will take precedence.
8
 
9
  Set tabs to 4.
10
 
11
  Declares the ADODB Base Class for PHP5 "ADODB_BASE_RS", and supports iteration with 
12
  the ADODB_Iterator class.
13
 
14
  		$rs = $db->Execute("select * from adoxyz");
15
		foreach($rs as $k => $v) {
16
			echo $k; print_r($v); echo "<br>";
17
		}
18
 
19
 
20
	Iterator code based on http://cvs.php.net/cvs.php/php-src/ext/spl/examples/cachingiterator.inc?login=2
21
 */
22
 
23
 
24
 class ADODB_Iterator implements Iterator {
25
 
26
    private $rs;
27
 
28
    function __construct($rs) 
29
	{
30
        $this->rs = $rs;
31
    }
32
    function rewind() 
33
	{
34
        $this->rs->MoveFirst();
35
    }
36
 
37
	function valid() 
38
	{
39
        return !$this->rs->EOF;
40
    }
41
 
42
    function key() 
43
	{
44
        return $this->rs->_currentRow;
45
    }
46
 
47
    function current() 
48
	{
49
        return $this->rs->fields;
50
    }
51
 
52
    function next() 
53
	{
54
        $this->rs->MoveNext();
55
    }
56
 
57
	function __call($func, $params)
58
	{
59
		return call_user_func_array(array($this->rs, $func), $params);
60
	}
61
 
62
 
63
	function hasMore()
64
	{
65
		return !$this->rs->EOF;
66
	}
67
 
68
}
69
 
70
 
71
class ADODB_BASE_RS implements IteratorAggregate {
72
    function getIterator() {
73
        return new ADODB_Iterator($this);
74
    }
75
 
76
	/* this is experimental - i don't really know what to return... */
77
	function __toString()
78
	{
79
		include_once(ADODB_DIR.'/toexport.inc.php');
80
		return _adodb_export($this,',',',',false,true);
81
	}
82
} 
83
 
84
 
85
?>