diff options
author | Dracony <draconyster@gmail.com> | 2013-01-11 14:15:52 +0200 |
---|---|---|
committer | Dracony <draconyster@gmail.com> | 2013-01-11 14:15:52 +0200 |
commit | a95be9baa4e7cc327d8e0508ac95af884f00315d (patch) | |
tree | 93a9c5752932496a7ae5ac0d26e9b21d3f25890b /modules/database/classes | |
parent | 168fd425c75841dd059b061b9f58ce8eef7d01d0 (diff) | |
download | PHPixie-a95be9baa4e7cc327d8e0508ac95af884f00315d.zip PHPixie-a95be9baa4e7cc327d8e0508ac95af884f00315d.tar.gz PHPixie-a95be9baa4e7cc327d8e0508ac95af884f00315d.tar.bz2 |
Better error display for PDO
Also changed alias methods
Diffstat (limited to 'modules/database/classes')
-rw-r--r-- | modules/database/classes/database/query.php | 20 | ||||
-rw-r--r-- | modules/database/classes/driver/pdo/db.php | 6 | ||||
-rw-r--r-- | modules/database/classes/driver/pdo/query.php | 4 |
3 files changed, 16 insertions, 14 deletions
diff --git a/modules/database/classes/database/query.php b/modules/database/classes/database/query.php index 8558499..984949b 100644 --- a/modules/database/classes/database/query.php +++ b/modules/database/classes/database/query.php @@ -118,7 +118,7 @@ abstract class Query_Database { * @var string
* @access protected
*/
- protected $alias = null;
+ protected $_alias = null;
/**
* Methods and type of value they allow that are available via __call
@@ -336,7 +336,7 @@ abstract class Query_Database { if ((is_string($p[0]) || get_class($p[0]) == 'Expression_Database') && isset($p[1])) {
if (strpos($p[0], '.') === false)
- $p[0]=$this->lastAlias().'.'.$p[0];
+ $p[0]=$this->last_alias().'.'.$p[0];
return array(
'logic' => 'and',
'conditions'=>array(
@@ -356,10 +356,10 @@ abstract class Query_Database { * @return string Last generated alias. If no alias were created returns table name.
* @access public
*/
- public function lastAlias() {
- if ($this->alias === null)
+ public function last_alias() {
+ if ($this->_alias === null)
return $this->_table;
- return 'a'.$this->alias;
+ return 'a'.$this->_alias;
}
/**
@@ -369,13 +369,13 @@ abstract class Query_Database { * @return string New alias
* @access public
*/
- public function addAlias() {
- if ($this->alias === null){
- $this->alias = 0;
+ public function add_alias() {
+ if ($this->_alias === null){
+ $this->_alias = 0;
}else {
- $this->alias++;
+ $this->_alias++;
}
- return $this->lastAlias();
+ return $this->last_alias();
}
diff --git a/modules/database/classes/driver/pdo/db.php b/modules/database/classes/driver/pdo/db.php index 59705f7..fa02e63 100644 --- a/modules/database/classes/driver/pdo/db.php +++ b/modules/database/classes/driver/pdo/db.php @@ -73,8 +73,10 @@ class DB_PDO_Driver extends DB{ */
public function execute($query, $params = array()) {
$cursor = $this->conn->prepare($query);
- if(!$cursor->execute($params))
- throw new Exception("Database error: ".implode(' ',$this->conn->errorInfo())." \n in query:\n{$query}");
+ if (!$cursor->execute($params)) {
+ $error = $cursor->errorInfo();
+ throw new Exception("Database error:\n".$error[2]." \n in query:\n{$query}");
+ }
return new Result_PDO_Driver($cursor);
}
}
\ No newline at end of file diff --git a/modules/database/classes/driver/pdo/query.php b/modules/database/classes/driver/pdo/query.php index 662ce71..647b0c4 100644 --- a/modules/database/classes/driver/pdo/query.php +++ b/modules/database/classes/driver/pdo/query.php @@ -61,7 +61,7 @@ class Query_PDO_Driver extends Query_Database { return $field->value.' ';
$field = explode('.', $field);
if (count($field) == 1)
- array_unshift($field,$this->lastAlias());
+ array_unshift($field,$this->last_alias());
$str = $this->quote($field[0]).'.';
if (trim($field[1]) == '*')
return $str.'* ';
@@ -136,7 +136,7 @@ class Query_PDO_Driver extends Query_Database { $query.= "SELECT COUNT(*) as {$this->quote('count')} FROM {$this->quote($this->_table)} ";
}
if($this->_type=='delete')
- $query.= "DELETE FROM {$this->quote($this->_table)} ";
+ $query.= "DELETE {$this->last_alias()}.* FROM {$this->quote($this->_table)} ";
if($this->_type=='update'){
$query.= "UPDATE {$this->quote($this->_table)} SET ";
$first = true;
|