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: Ibm.php 20096 2010-01-06 02:05:09Z bkarwin $
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_Ibm extends Zend_Db_Statement_Pdo
41: {
42: /**
43: * Returns an array containing all of the result set rows.
44: *
45: * Behaves like parent, but if limit()
46: * is used, the final result removes the extra column
47: * 'zend_db_rownum'
48: *
49: * @param int $style OPTIONAL Fetch mode.
50: * @param int $col OPTIONAL Column number, if fetch mode is by column.
51: * @return array Collection of rows, each in a format by the fetch mode.
52: * @throws Zend_Db_Statement_Exception
53: */
54: public function fetchAll($style = null, $col = null)
55: {
56: $data = parent::fetchAll($style, $col);
57: $results = array();
58: $remove = $this->_adapter->foldCase('ZEND_DB_ROWNUM');
59:
60: foreach ($data as $row) {
61: if (is_array($row) && array_key_exists($remove, $row)) {
62: unset($row[$remove]);
63: }
64: $results[] = $row;
65: }
66: return $results;
67: }
68:
69: /**
70: * Binds a parameter to the specified variable name.
71: *
72: * @param mixed $parameter Name the parameter, either integer or string.
73: * @param mixed $variable Reference to PHP variable containing the value.
74: * @param mixed $type OPTIONAL Datatype of SQL parameter.
75: * @param mixed $length OPTIONAL Length of SQL parameter.
76: * @param mixed $options OPTIONAL Other options.
77: * @return bool
78: * @throws Zend_Db_Statement_Exception
79: */
80: public function _bindParam($parameter, &$variable, $type = null, $length = null, $options = null)
81: {
82: try {
83: if (($type === null) && ($length === null) && ($options === null)) {
84: return $this->_stmt->bindParam($parameter, $variable);
85: } else {
86: return $this->_stmt->bindParam($parameter, $variable, $type, $length, $options);
87: }
88: } catch (PDOException $e) {
89: require_once 'Zend/Db/Statement/Exception.php';
90: throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
91: }
92: }
93:
94: }