예제 #1
0
	/**
	 * execute method
	 *
	 * @param mixed $sql
	 * @access protected
	 * @return void
	 */
	function _execute($sql) {
		if ($this->testing) {
			$this->simulated[] = $sql;
			return null;
		}
		return parent::_execute($sql);
	}
 function execute($sql)
 {
     $result = parent::execute($sql);
     if (Configure::read('Cake.logQuery') && Configure::read() <= 1) {
         $this->log($sql, LOG_DEBUG);
     }
     return $result;
 }
 /**
  * Log given SQL query.
  *
  * @param string $sql SQL statement
  * @access public
  */
 function logQuery($sql)
 {
     $return = parent::logQuery($sql);
     if (Configure::read('logQueries')) {
         $this->log("sql[{$this->_queriesCnt}]:{$sql}", 'sql');
     }
     return $return;
 }
예제 #4
0
 function read(&$model, $queryData = array(), $recursive = null)
 {
     // only handle queries for the SQL
     if (empty($queryData['returnSQL'])) {
         return parent::read($model, $queryData, $recursive);
     }
     // the following is just copied from the /cake/libs/model/datasources/dbo_source.php read function
     $queryData = $this->__scrubQueryData($queryData);
     $null = null;
     $array = array();
     $linkedModels = array();
     $this->__bypass = false;
     $this->__booleans = array();
     if ($recursive === null && isset($queryData['recursive'])) {
         $recursive = $queryData['recursive'];
     }
     if (!is_null($recursive)) {
         $_recursive = $model->recursive;
         $model->recursive = $recursive;
     }
     if (!empty($queryData['fields'])) {
         $this->__bypass = true;
         $queryData['fields'] = $this->fields($model, null, $queryData['fields']);
     } else {
         $queryData['fields'] = $this->fields($model);
     }
     foreach ($model->__associations as $type) {
         foreach ($model->{$type} as $assoc => $assocData) {
             if ($model->recursive > -1) {
                 $linkModel =& $model->{$assoc};
                 $external = isset($assocData['external']);
                 if ($model->useDbConfig == $linkModel->useDbConfig) {
                     if (true === $this->generateAssociationQuery($model, $linkModel, $type, $assoc, $assocData, $queryData, $external, $null)) {
                         $linkedModels[] = $type . '/' . $assoc;
                     }
                 }
             }
         }
     }
     $query = $this->generateAssociationQuery($model, $null, null, null, null, $queryData, false, $null);
     // restore the recursive level
     if (!is_null($recursive)) {
         $model->recursive = $_recursive;
     }
     // but return this query instead of fetching it
     return $query;
 }
 public function _getRows($table)
 {
     $rows = array();
     $descriptions = parent::describe($table['Table']['name']);
     foreach ($descriptions as $fieldName => $fields) {
         $current = $fields;
         $current['id'] = $table['Table']['id'] . '|' . $fieldName;
         $current['name'] = $fieldName;
         $rows['Row'][] = $current;
     }
     return $rows;
 }
예제 #6
0
 function __construct($config = null, $autoConnect = true)
 {
     $this->columns['binary']['name'] = 'mediumblob';
     parent::__construct($config, $autoConnect);
 }