PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 1.3.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v1.3.1
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / libs / Zend / Db / Statement / Pdo.php
matomo / app / libs / Zend / Db / Statement Last commit date
Db2 6 years ago Mysqli 6 years ago Oracle 6 years ago Pdo 6 years ago Sqlsrv 6 years ago Db2.php 6 years ago Exception.php 6 years ago Interface.php 6 years ago Mysqli.php 6 years ago Oracle.php 6 years ago Pdo.php 6 years ago Sqlsrv.php 6 years ago
Pdo.php
440 lines
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-2011 Zend Technologies USA Inc. (http://www.zend.com)
19 * @license http://framework.zend.com/license/new-bsd New BSD License
20 * @version $Id: Pdo.php 23775 2011-03-01 17:25:24Z ralph $
21 */
22
23 /**
24 * @see Zend_Db_Statement
25 */
26 // require_once 'Zend/Db/Statement.php';
27
28 /**
29 * Proxy class to wrap a PDOStatement object.
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-2011 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 extends Zend_Db_Statement implements IteratorAggregate
41 {
42
43 /**
44 * @var int
45 */
46 protected $_fetchMode = PDO::FETCH_ASSOC;
47
48 /**
49 * Prepare a string SQL statement and create a statement object.
50 *
51 * @param string $sql
52 * @return void
53 * @throws Zend_Db_Statement_Exception
54 */
55 protected function _prepare($sql)
56 {
57 try {
58 $this->_stmt = $this->_adapter->getConnection()->prepare($sql);
59 } catch (PDOException $e) {
60 // require_once 'Zend/Db/Statement/Exception.php';
61 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
62 }
63 }
64
65 /**
66 * Bind a column of the statement result set to a PHP variable.
67 *
68 * @param string $column Name the column in the result set, either by
69 * position or by name.
70 * @param mixed $param Reference to the PHP variable containing the value.
71 * @param mixed $type OPTIONAL
72 * @return bool
73 * @throws Zend_Db_Statement_Exception
74 */
75 public function bindColumn($column, &$param, $type = null)
76 {
77 try {
78 if ($type === null) {
79 return $this->_stmt->bindColumn($column, $param);
80 } else {
81 return $this->_stmt->bindColumn($column, $param, $type);
82 }
83 } catch (PDOException $e) {
84 // require_once 'Zend/Db/Statement/Exception.php';
85 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
86 }
87 }
88
89 /**
90 * Binds a parameter to the specified variable name.
91 *
92 * @param mixed $parameter Name the parameter, either integer or string.
93 * @param mixed $variable Reference to PHP variable containing the value.
94 * @param mixed $type OPTIONAL Datatype of SQL parameter.
95 * @param mixed $length OPTIONAL Length of SQL parameter.
96 * @param mixed $options OPTIONAL Other options.
97 * @return bool
98 * @throws Zend_Db_Statement_Exception
99 */
100 protected function _bindParam($parameter, &$variable, $type = null, $length = null, $options = null)
101 {
102 try {
103 if ($type === null) {
104 if (is_bool($variable)) {
105 $type = PDO::PARAM_BOOL;
106 } elseif ($variable === null) {
107 $type = PDO::PARAM_NULL;
108 } elseif (is_integer($variable)) {
109 $type = PDO::PARAM_INT;
110 } else {
111 $type = PDO::PARAM_STR;
112 }
113 }
114 return $this->_stmt->bindParam($parameter, $variable, $type, $length, $options);
115 } catch (PDOException $e) {
116 // require_once 'Zend/Db/Statement/Exception.php';
117 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
118 }
119 }
120
121 /**
122 * Binds a value to a parameter.
123 *
124 * @param mixed $parameter Name the parameter, either integer or string.
125 * @param mixed $value Scalar value to bind to the parameter.
126 * @param mixed $type OPTIONAL Datatype of the parameter.
127 * @return bool
128 * @throws Zend_Db_Statement_Exception
129 */
130 public function bindValue($parameter, $value, $type = null)
131 {
132 if (is_string($parameter) && $parameter[0] != ':') {
133 $parameter = ":$parameter";
134 }
135
136 $this->_bindParam[$parameter] = $value;
137
138 try {
139 if ($type === null) {
140 return $this->_stmt->bindValue($parameter, $value);
141 } else {
142 return $this->_stmt->bindValue($parameter, $value, $type);
143 }
144 } catch (PDOException $e) {
145 // require_once 'Zend/Db/Statement/Exception.php';
146 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
147 }
148 }
149
150 /**
151 * Closes the cursor, allowing the statement to be executed again.
152 *
153 * @return bool
154 * @throws Zend_Db_Statement_Exception
155 */
156 public function closeCursor()
157 {
158 try {
159 return $this->_stmt->closeCursor();
160 } catch (PDOException $e) {
161 // require_once 'Zend/Db/Statement/Exception.php';
162 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
163 }
164 }
165
166 /**
167 * Returns the number of columns in the result set.
168 * Returns null if the statement has no result set metadata.
169 *
170 * @return int The number of columns.
171 * @throws Zend_Db_Statement_Exception
172 */
173 public function columnCount()
174 {
175 try {
176 return $this->_stmt->columnCount();
177 } catch (PDOException $e) {
178 // require_once 'Zend/Db/Statement/Exception.php';
179 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
180 }
181 }
182
183 /**
184 * Retrieves the error code, if any, associated with the last operation on
185 * the statement handle.
186 *
187 * @return string error code.
188 * @throws Zend_Db_Statement_Exception
189 */
190 public function errorCode()
191 {
192 try {
193 return $this->_stmt->errorCode();
194 } catch (PDOException $e) {
195 // require_once 'Zend/Db/Statement/Exception.php';
196 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
197 }
198 }
199
200 /**
201 * Retrieves an array of error information, if any, associated with the
202 * last operation on the statement handle.
203 *
204 * @return array
205 * @throws Zend_Db_Statement_Exception
206 */
207 public function errorInfo()
208 {
209 try {
210 return $this->_stmt->errorInfo();
211 } catch (PDOException $e) {
212 // require_once 'Zend/Db/Statement/Exception.php';
213 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
214 }
215 }
216
217 /**
218 * Executes a prepared statement.
219 *
220 * @param array $params OPTIONAL Values to bind to parameter placeholders.
221 * @return bool
222 * @throws Zend_Db_Statement_Exception
223 */
224 public function _execute(array $params = null)
225 {
226 try {
227 if ($params !== null) {
228 return $this->_stmt->execute($params);
229 } else {
230 return $this->_stmt->execute();
231 }
232 } catch (PDOException $e) {
233 // require_once 'Zend/Db/Statement/Exception.php';
234 throw new Zend_Db_Statement_Exception($e->getMessage(), (int) $e->getCode(), $e);
235 }
236 }
237
238 /**
239 * Fetches a row from the result set.
240 *
241 * @param int $style OPTIONAL Fetch mode for this fetch operation.
242 * @param int $cursor OPTIONAL Absolute, relative, or other.
243 * @param int $offset OPTIONAL Number for absolute or relative cursors.
244 * @return mixed Array, object, or scalar depending on fetch mode.
245 * @throws Zend_Db_Statement_Exception
246 */
247 public function fetch($style = null, $cursor = null, $offset = null)
248 {
249 if ($style === null) {
250 $style = $this->_fetchMode;
251 }
252 try {
253 return $this->_stmt->fetch($style, $cursor, $offset);
254 } catch (PDOException $e) {
255 // require_once 'Zend/Db/Statement/Exception.php';
256 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
257 }
258 }
259
260 /**
261 * Required by IteratorAggregate interface
262 *
263 * @return IteratorIterator
264 */
265 public function getIterator()
266 {
267 return new IteratorIterator($this->_stmt);
268 }
269
270 /**
271 * Returns an array containing all of the result set rows.
272 *
273 * @param int $style OPTIONAL Fetch mode.
274 * @param int $col OPTIONAL Column number, if fetch mode is by column.
275 * @return array Collection of rows, each in a format by the fetch mode.
276 * @throws Zend_Db_Statement_Exception
277 */
278 public function fetchAll($style = null, $col = null)
279 {
280 if ($style === null) {
281 $style = $this->_fetchMode;
282 }
283 try {
284 if ($style == PDO::FETCH_COLUMN) {
285 if ($col === null) {
286 $col = 0;
287 }
288 return $this->_stmt->fetchAll($style, $col);
289 } else {
290 return $this->_stmt->fetchAll($style);
291 }
292 } catch (PDOException $e) {
293 // require_once 'Zend/Db/Statement/Exception.php';
294 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
295 }
296 }
297
298 /**
299 * Returns a single column from the next row of a result set.
300 *
301 * @param int $col OPTIONAL Position of the column to fetch.
302 * @return string
303 * @throws Zend_Db_Statement_Exception
304 */
305 public function fetchColumn($col = 0)
306 {
307 try {
308 return $this->_stmt->fetchColumn($col);
309 } catch (PDOException $e) {
310 // require_once 'Zend/Db/Statement/Exception.php';
311 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
312 }
313 }
314
315 /**
316 * Fetches the next row and returns it as an object.
317 *
318 * @param string $class OPTIONAL Name of the class to create.
319 * @param array $config OPTIONAL Constructor arguments for the class.
320 * @return mixed One object instance of the specified class.
321 * @throws Zend_Db_Statement_Exception
322 */
323 public function fetchObject($class = 'stdClass', array $config = array())
324 {
325 try {
326 return $this->_stmt->fetchObject($class, $config);
327 } catch (PDOException $e) {
328 // require_once 'Zend/Db/Statement/Exception.php';
329 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
330 }
331 }
332
333 /**
334 * Retrieve a statement attribute.
335 *
336 * @param integer $key Attribute name.
337 * @return mixed Attribute value.
338 * @throws Zend_Db_Statement_Exception
339 */
340 public function getAttribute($key)
341 {
342 try {
343 return $this->_stmt->getAttribute($key);
344 } catch (PDOException $e) {
345 // require_once 'Zend/Db/Statement/Exception.php';
346 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
347 }
348 }
349
350 /**
351 * Returns metadata for a column in a result set.
352 *
353 * @param int $column
354 * @return mixed
355 * @throws Zend_Db_Statement_Exception
356 */
357 public function getColumnMeta($column)
358 {
359 try {
360 return $this->_stmt->getColumnMeta($column);
361 } catch (PDOException $e) {
362 // require_once 'Zend/Db/Statement/Exception.php';
363 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
364 }
365 }
366
367 /**
368 * Retrieves the next rowset (result set) for a SQL statement that has
369 * multiple result sets. An example is a stored procedure that returns
370 * the results of multiple queries.
371 *
372 * @return bool
373 * @throws Zend_Db_Statement_Exception
374 */
375 public function nextRowset()
376 {
377 try {
378 return $this->_stmt->nextRowset();
379 } catch (PDOException $e) {
380 // require_once 'Zend/Db/Statement/Exception.php';
381 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
382 }
383 }
384
385 /**
386 * Returns the number of rows affected by the execution of the
387 * last INSERT, DELETE, or UPDATE statement executed by this
388 * statement object.
389 *
390 * @return int The number of rows affected.
391 * @throws Zend_Db_Statement_Exception
392 */
393 public function rowCount()
394 {
395 try {
396 return $this->_stmt->rowCount();
397 } catch (PDOException $e) {
398 // require_once 'Zend/Db/Statement/Exception.php';
399 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
400 }
401 }
402
403 /**
404 * Set a statement attribute.
405 *
406 * @param string $key Attribute name.
407 * @param mixed $val Attribute value.
408 * @return bool
409 * @throws Zend_Db_Statement_Exception
410 */
411 public function setAttribute($key, $val)
412 {
413 try {
414 return $this->_stmt->setAttribute($key, $val);
415 } catch (PDOException $e) {
416 // require_once 'Zend/Db/Statement/Exception.php';
417 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
418 }
419 }
420
421 /**
422 * Set the default fetch mode for this statement.
423 *
424 * @param int $mode The fetch mode.
425 * @return bool
426 * @throws Zend_Db_Statement_Exception
427 */
428 public function setFetchMode($mode)
429 {
430 $this->_fetchMode = $mode;
431 try {
432 return $this->_stmt->setFetchMode($mode);
433 } catch (PDOException $e) {
434 // require_once 'Zend/Db/Statement/Exception.php';
435 throw new Zend_Db_Statement_Exception($e->getMessage(), $e->getCode(), $e);
436 }
437 }
438
439 }
440