| 
<?php
 /*
 ********************************************************
 QuickPDO
 This class extends the very PDO objects to add shortcuts like the Zend Adapter has.
 I wish such shortcuts were implemented in the native PDO class.
 ------------------------
 Version  : 1.0 for PHP 5
 Date     : 2011-09-05
 Web site : http://www.tinybutstrong.com
 Author   : http://www.tinybutstrong.com/onlyyou.html
 ********************************************************
 This library is free software.
 You can redistribute and modify it even for commercial usage,
 but you must accept and respect the LPGL License version 3.
 */
 
 class QuickPDO extends PDO {
 
 public $fetch_style = PDO::FETCH_ASSOC;
 
 /* Execute an SQL statement and return the number of affected rows.
 * @param {string} $sql: the sql statement
 * @param {array} $values: An array of values with as many elements as there are bound parameters in the SQL statement being executed.
 * see http://www.php.net/manual/en/pdostatement.execute.php
 */
 function execute($sql, $values = array()) {
 if (!is_array($values)) $values = array($values);
 $stmt = $this->prepare($sql);
 $stmt->execute($values);
 return $stmt->rowCount();
 }
 
 /* Return all records corresponding to an SQL query.
 * Similar to PDOStatement::fetchAll() but directly includes the SQL statement.
 * @param {string} $sql: the SQL statement
 * @param {array} $values: An array of values with as many elements as there are bound parameters in the SQL statement being executed.
 * @param {constant} $fetch_style: see http://www.php.net/manual/en/pdostatement.fetch.php
 */
 function fetchAll($sql, $values = array(), $fetch_style=null) {
 if (!is_array($values)) $values = array($values);
 if ($fetch_style===null) $fetch_style = $this->fetch_style;
 $stmt = $this->prepare($sql);
 $stmt->execute($values);
 $result = $stmt->fetchAll($fetch_style);
 return $result;
 }
 
 /* Return the first record corresponding to an SQL statement.
 * Similar to PDOStatement::fetch() but directly includes the SQL statement.
 * @param {string} $sql: the SQL statement
 * @param {array} $values: An array of values with as many elements as there are bound parameters in the SQL statement being executed.
 * @param {constant} $fetch_style: see http://www.php.net/manual/en/pdostatement.fetch.php
 */
 function fetchRow($sql, $values = array(), $fetch_style=null) {
 if (!is_array($values)) $values = array($values);
 if ($fetch_style===null) $fetch_style = $this->fetch_style;
 $stmt = $this->prepare($sql);
 $stmt->execute($values);
 $result = $stmt->fetch($fetch_style);
 return $result;
 }
 
 /* Return the first value of the first record corresponding to an SQL statement.
 * @param {string} $sql: the SQL statement
 * @param {array} $values: An array of values with as many elements as there are bound parameters in the SQL statement being executed.
 */
 function fetchOne($sql, $values = array() ) {
 $result = $this->fetchRow($sql, $values, PDO::FETCH_NUM);
 if (is_array($result)) {
 return $result[0];
 } else {
 return $result;
 }
 }
 
 /* Return all records of an SQL statement as an associative array
 * where the first column of the query becomes the keys of the array, and
 * the second column of the query becomes the values of the array.
 * @param {string} $sql: the SQL statement
 * @param {array} $values: An array of values with as many elements as there are bound parameters in the SQL statement being executed.
 */
 function fetchPairs($sql, $values = array() ) {
 if (!is_array($values)) $values = array($values);
 $stmt = $this->prepare($sql);
 $stmt->execute($values);
 $result = array();
 while ($row = $stmt->fetch(PDO::FETCH_NUM)) {
 $result[$row[0]] = $row[1];
 }
 return $result;
 }
 
 /* Return all values of the first column of an SQL statement as a indexed array.
 * @param {string} $sql: the SQL statement
 * @param {array} $values: An array of values with as many elements as there are bound parameters in the SQL statement being executed.
 */
 function fetchCol($sql, $values = array() ) {
 if (!is_array($values)) $values = array($values);
 $stmt = $this->prepare($sql);
 $stmt->execute($values);
 $result = $stmt->fetchAll(PDO::FETCH_COLUMN, 0);
 return $result;
 }
 
 }
 |