diff options
author | Egor <egor.26.93@gmail.com> | 2015-06-01 16:13:22 +0300 |
---|---|---|
committer | Egor <egor.26.93@gmail.com> | 2015-06-01 16:13:22 +0300 |
commit | 78aad87a38d6372961f3ccfb11a7ad6f05931665 (patch) | |
tree | 86a18989d183df66c01fcd0f8bde90ac893b6cb4 /codebase | |
parent | 458f0aead573842f1df00ce2ae00334c27f66585 (diff) | |
download | connector-php-78aad87a38d6372961f3ccfb11a7ad6f05931665.zip connector-php-78aad87a38d6372961f3ccfb11a7ad6f05931665.tar.gz connector-php-78aad87a38d6372961f3ccfb11a7ad6f05931665.tar.bz2 |
Added db wrapper for codeigniter version 3.
Diffstat (limited to 'codebase')
-rw-r--r-- | codebase/db_phpci.php | 10 | ||||
-rw-r--r-- | codebase/db_phpci2.php | 65 |
2 files changed, 74 insertions, 1 deletions
diff --git a/codebase/db_phpci.php b/codebase/db_phpci.php index 9d10d99..17fe8a0 100644 --- a/codebase/db_phpci.php +++ b/codebase/db_phpci.php @@ -44,16 +44,24 @@ class PHPCIDBDataWrapper extends DBDataWrapper{ }
class PHPCIResultSet{
+ private $is_result_done = false;
private $res;
private $start;
private $count;
public function __construct($res){
+ if(is_bool($res)) {
+ $this->$is_result_done = true;
+ return $this;
+ }
$this->res = $res;
$this->start = $res->current_row;
- $this->count = $res->num_rows;
+ $this->count = $res->num_rows();
}
public function next(){
+ if($this->is_result_done)
+ return null;
+
if ($this->start != $this->count){
return $this->res->row($this->start++,'array');
} else {
diff --git a/codebase/db_phpci2.php b/codebase/db_phpci2.php new file mode 100644 index 0000000..9d10d99 --- /dev/null +++ b/codebase/db_phpci2.php @@ -0,0 +1,65 @@ +<?php
+/*
+ @author dhtmlx.com
+ @license GPL, see license.txt
+*/
+require_once("db_common.php");
+
+/*! Implementation of DataWrapper for PDO
+
+if you plan to use it for Oracle - use Oracle connection type instead
+**/
+class PHPCIDBDataWrapper extends DBDataWrapper{
+ private $last_result;//!< store result or last operation
+
+ public function query($sql){
+ LogMaster::log($sql);
+
+ $res=$this->connection->query($sql);
+ if ($res===false) {
+ throw new Exception("CI - sql execution failed");
+ }
+
+ if (is_object($res))
+ return new PHPCIResultSet($res);
+ return new ArrayQueryWrapper(array());
+ }
+
+ public function get_next($res){
+ $data = $res->next();
+ return $data;
+ }
+
+ public function get_new_id(){
+ return $this->connection->insert_id();
+ }
+
+ public function escape($str){
+ return $this->connection->escape_str($str);
+ }
+
+ public function escape_name($data){
+ return $this->connection->protect_identifiers($data);
+ }
+}
+
+class PHPCIResultSet{
+ private $res;
+ private $start;
+ private $count;
+
+ public function __construct($res){
+ $this->res = $res;
+ $this->start = $res->current_row;
+ $this->count = $res->num_rows;
+ }
+ public function next(){
+ if ($this->start != $this->count){
+ return $this->res->row($this->start++,'array');
+ } else {
+ $this->res->free_result();
+ return null;
+ }
+ }
+}
+?>
\ No newline at end of file |