コード例 #1
0
ファイル: Link.php プロジェクト: Nycto/Round-Eights
 public function testIsInsert()
 {
     $this->assertTrue(\r8\DB\Link::isInsert("INSERT INTO table SET field = 1"));
     $this->assertTrue(\r8\DB\Link::isInsert("INSERT INTO table VALUES (1, 2)"));
     $this->assertTrue(\r8\DB\Link::isInsert(" \n\t  INSERT INTO table SET field = 1"));
     $this->assertTrue(\r8\DB\Link::isInsert("insert into table set field = 1"));
     $this->assertFalse(\r8\DB\Link::isInsert("INSERTER"));
     $this->assertFalse(\r8\DB\Link::isInsert("SELECT * FROM table"));
     $this->assertFalse(\r8\DB\Link::isInsert("UPDATE table SET field = 1"));
 }
コード例 #2
0
ファイル: Link.php プロジェクト: Nycto/Round-Eights
 /**
  * Execute a query and return a result object
  *
  * @param String $query The query to execute
  * @return \r8\iface\DB\Adapter\Result
  */
 public function query($query)
 {
     if (!isset($this->link)) {
         $this->connect();
     }
     $result = $this->link->query($query);
     if ($result === FALSE) {
         throw new \r8\Exception\DB\Query($query, $this->link->error, $this->link->errno);
     }
     if (\r8\DB\Link::isSelect($query)) {
         return new \r8\DB\Result\Read(new \r8\DB\MySQLi\Result($result), $query);
     } else {
         return new \r8\DB\Result\Write($this->link->affected_rows, $this->link->insert_id, $query);
     }
 }
コード例 #3
0
ファイル: Link.php プロジェクト: Nycto/Round-Eights
 /**
  * Runs a query and returns the result
  *
  * @param String $query The query to run
  * @param Integer $flags Any boolean flags to set
  * @returns \r8\iface\DB\Result Returns a result object
  */
 public function query($query, $flags = 0)
 {
     $query = (string) $query;
     if (\r8\DB\Link::isSelect($query)) {
         if (empty($this->queue)) {
             $result = new \r8\DB\BlackHole\Result();
         } else {
             $result = array_shift($this->queue);
         }
         return new \r8\DB\Result\Read($result, $query);
     } else {
         if (\r8\DB\Link::isInsert($query)) {
             return new \r8\DB\Result\Write(1, ++$this->insertID, $query);
         } else {
             return new \r8\DB\Result\Write(0, null, $query);
         }
     }
 }
コード例 #4
0
ファイル: Link.php プロジェクト: Nycto/Round-Eights
 /**
  * Execute a query and return a result object
  *
  * @param String $query The query to execute
  * @return \r8\iface\DB\Adapter\Result
  */
 public function query($query)
 {
     if (!isset($this->link)) {
         $this->connect();
     }
     $error = null;
     $result = @sqlite_query($this->link, $query, SQLITE_ASSOC, $error);
     if ($result === FALSE) {
         $code = sqlite_last_error($this->link);
         throw new \r8\Exception\DB\Query($query, sqlite_error_string($code) . ": " . $error, $code);
     }
     if (\r8\DB\Link::isSelect($query)) {
         return new \r8\DB\Result\Read(new \r8\DB\SQLite\Result($result), $query);
     } else {
         return new \r8\DB\Result\Write(sqlite_changes($this->link), sqlite_last_insert_rowid($this->link), $query);
     }
 }