1: <?php
2: /**
3: * Zend Framework
4: *
5: * LICENSE
6: *
7: * This source file is subject to the new BSD license that is bundled
8: * with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://framework.zend.com/license/new-bsd
11: * If you did not receive a copy of the license and are unable to
12: * obtain it through the world-wide-web, please send an email
13: * to license@zend.com so we can send you a copy immediately.
14: *
15: * @category Zend
16: * @package Zend_Db
17: * @subpackage Statement
18: * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
19: * @license http://framework.zend.com/license/new-bsd New BSD License
20: * @version $Id: Oci.php 21104 2010-02-19 21:26:36Z mikaelkael $
21: */
22:
23: /**
24: * @see Zend_Db_Statement_Pdo
25: */
26: require_once 'Zend/Db/Statement/Pdo.php';
27:
28: /**
29: * Proxy class to wrap a PDOStatement object for IBM Databases.
30: * Matches the interface of PDOStatement. All methods simply proxy to the
31: * matching method in PDOStatement. PDOExceptions thrown by PDOStatement
32: * are re-thrown as Zend_Db_Statement_Exception.
33: *
34: * @category Zend
35: * @package Zend_Db
36: * @subpackage Statement
37: * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
38: * @license http://framework.zend.com/license/new-bsd New BSD License
39: */
40: class Zend_Db_Statement_Pdo_Oci extends Zend_Db_Statement_Pdo
41: {
42:
43: /**
44: * Returns an array containing all of the result set rows.
45: *
46: * Behaves like parent, but if limit()
47: * is used, the final result removes the extra column
48: * 'zend_db_rownum'
49: *
50: * @param int $style OPTIONAL Fetch mode.
51: * @param int $col OPTIONAL Column number, if fetch mode is by column.
52: * @return array Collection of rows, each in a format by the fetch mode.
53: * @throws Zend_Db_Statement_Exception
54: */
55: public function fetchAll($style = null, $col = null)
56: {
57: $data = parent::fetchAll($style, $col);
58: $results = array();
59: $remove = $this->_adapter->foldCase('zend_db_rownum');
60:
61: foreach ($data as $row) {
62: if (is_array($row) && array_key_exists($remove, $row)) {
63: unset($row[$remove]);
64: }
65: $results[] = $row;
66: }
67: return $results;
68: }
69:
70:
71: /**
72: * Fetches a row from the result set.
73: *
74: * @param int $style OPTIONAL Fetch mode for this fetch operation.
75: * @param int $cursor OPTIONAL Absolute, relative, or other.
76: * @param int $offset OPTIONAL Number for absolute or relative cursors.
77: * @return mixed Array, object, or scalar depending on fetch mode.
78: * @throws Zend_Db_Statement_Exception
79: */
80: public function fetch($style = null, $cursor = null, $offset = null)
81: {
82: $row = parent::fetch($style, $cursor, $offset);
83:
84: $remove = $this->_adapter->foldCase('zend_db_rownum');
85: if (is_array($row) && array_key_exists($remove, $row)) {
86: unset($row[$remove]);
87: }
88:
89: return $row;
90: }
91: }