diff options
Diffstat (limited to 'codebase/connector/db_adodb.php')
-rw-r--r-- | codebase/connector/db_adodb.php | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/codebase/connector/db_adodb.php b/codebase/connector/db_adodb.php new file mode 100644 index 0000000..5250c21 --- /dev/null +++ b/codebase/connector/db_adodb.php @@ -0,0 +1,72 @@ +<?php +/* + @author dhtmlx.com + @license GPL, see license.txt +*/ +require_once("db_common.php"); +/*! Implementation of DataWrapper for PostgreSQL +**/ +class AdoDBDataWrapper extends DBDataWrapper{ + protected $last_result; + public function query($sql){ + LogMaster::log($sql); + if (is_array($sql)) { + $res = $this->connection->SelectLimit($sql['sql'], $sql['numrows'], $sql['offset']); + } else { + $res = $this->connection->Execute($sql); + } + + if ($res===false) throw new Exception("ADODB operation failed\n".$this->connection->ErrorMsg()); + $this->last_result = $res; + return $res; + } + + public function get_next($res){ + if (!$res) + $res = $this->last_result; + + if ($res->EOF) + return false; + + $row = $res->GetRowAssoc(false); + $res->MoveNext(); + return $row; + } + + protected function get_new_id(){ + return $this->connection->Insert_ID(); + } + + public function escape($data){ + return $this->connection->addq($data); + } + + /*! escape field name to prevent sql reserved words conflict + @param data + unescaped data + @return + escaped data + */ + public function escape_name($data){ + if ((strpos($data,"`")!==false || is_int($data)) || (strpos($data,".")!==false)) + return $data; + return '`'.$data.'`'; + } + + + protected function select_query($select,$from,$where,$sort,$start,$count){ + if (!$from) + return $select; + + $sql="SELECT ".$select." FROM ".$from; + if ($where) $sql.=" WHERE ".$where; + if ($sort) $sql.=" ORDER BY ".$sort; + + if ($start || $count) { + $sql=array("sql"=>$sql,'numrows'=>$count, 'offset'=>$start); + } + return $sql; + } + +} +?>
\ No newline at end of file |