Просмотр файла lib/db.class.php

Размер файла: 1.67Kb
<?
class PDO_ extends PDO {
	function __construct($dsn, $username, $password) {
 		parent :: __construct($dsn, $username, $password);
   	$this -> setAttribute(PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);
    $this -> setAttribute(PDO :: ATTR_DEFAULT_FETCH_MODE, PDO :: FETCH_ASSOC);
   } 

	function prepare($sql) {
 		$stmt = parent :: prepare($sql, array(
 		PDO :: ATTR_STATEMENT_CLASS => array('PDOStatement_')
   	));
    return $stmt;
   } 

	function query($sql, $params = array()) {
      $stmt = $this -> prepare($sql);
   	  $stmt -> execute($params);
   	return $stmt;
   } 

	function querySingle($sql, $params = array()) {
 		$stmt = $this -> query($sql, $params);
   	$stmt -> execute($params);
    return $stmt -> fetchColumn(0);
 	} 

	function queryFetch($sql, $params = array()) {
 		$stmt = $this -> query($sql, $params);
   	$stmt -> execute($params);
    return $stmt -> fetch();
 	} 
} 
// ----------------------------------------------------//
class PDOStatement_ extends PDOStatement {
	function execute($params = array()) {
 		if (func_num_args() == 1) {
   		$params = func_get_arg(0);
     } else {
     	$params = func_get_args();
     } 
     if (!is_array($params)) {
     	$params = array($params);
     } 
     parent :: execute($params);
     return $this;
    } 

	function fetchSingle() {
 		return $this -> fetchColumn(0);
 	} 

	function fetchAssoc() {
 		$this -> setFetchMode(PDO :: FETCH_NUM);
   	$data = array();
    while ($row = $this -> fetch()) {
    	$data[$row[0]] = $row[1];
     } 
     return $data;
    }
	
 function num_rows(){
	$result = $this->rowCount();
	return $result;
 }
   
} 
?>