Вход Регистрация
Файл: source/library/database/mysql/Dao.php
Строк: 51
<?php

require_once dirname(__FILE__) . '/DataAccess.php';
require_once 
dirname(__FILE__) . '/DataAccessResult.php';

class 
Dao {

    
/**
     * Private
     * $da stores data access object
     */
    
protected $da;

    
/**
     * Constructs the Dao
     * @param $da instance of the DataAccess class
     */
    
public function __construct(& $da) {
        
$this->da $da;
    }

    
/**
     * For SELECT queries
     * @param $sql the query string
     * @return mixed either false if error or object DataAccessResult
     */
    
public function & query($sql$params = array()) {
        
$arySql explode('?'$sql);
        
$sql "";
        foreach (
$arySql as $k => $v) {
            if (isset(
$params[$k]))
                
$v .= "'" $this->da->realEscapeString($params[$k]) . "'";
            
$sql .= $v;
        }
        
$result = &$this->da->result($sql);
        if (
$error $result->isError()) {
            throw new 
Exception($error);
            return 
false;
        } else {
            return 
$result;
        }
    }

    
/**
     * For INSERT, UPDATE and DELETE queries
     * @param $sql the query string
     * @return boolean true if success
     */
    
public function execute($sql$params = array()) {
        
$arySql explode('?'$sql);
        
$sql "";
        foreach (
$arySql as $k => $v) {
            if (isset(
$params[$k]))
                
$v .= "'" $this->da->realEscapeString($params[$k]) . "'";
            
$sql .= $v;
        }
        
$result $this->da->result($sql);
        if (
$error $result->isError()) {
            throw new 
Exception($error);
            return 
false;
        } else {
            return 
true;
        }
    }
    
    public function 
listTables() {
        
$result $this->query('SHOW TABLES');
        if (
$result === false) {
            return 
false;
        } else {
            
$rows = array();
            while (
$row $result->fetchArray(MYSQL_NUM)) {
                
$rows[] = $row[0];
            }
        }

        return 
$rows;
    }

    
/**
     * 
     * Enter description here ...
     */
    
public function begin() {
        return 
$this->execute("START TRANSACTION");
    }

    
/**
     * 
     * Enter description here ...
     */
    
public function commit() {
        return 
$this->execute("COMMIT");
    }

    
/**
     * 
     * Enter description here ...
     */
    
public function rollback() {
        return 
$this->execute("ROLLBACK");
    }

}
Онлайн: 1
Реклама