예제 #1
0
 /**
  * Get the last error number
  */
 protected function _lastErrNo()
 {
     $error = '';
     if ($this->connection) {
         $error = $this->connection->errorCode();
     }
     return $error;
 }
예제 #2
0
파일: sqlite.php 프로젝트: jorkin/meiupic
 /**
  * 直接查询Sql
  *
  * @param String $SQL
  * @return Mix
  */
 function query($sql)
 {
     if (!$this->conn) {
         $this->connect();
     }
     if (strtolower(substr(ltrim($sql), 0, 5)) == 'alter') {
         $queryparts = preg_split("/[\\s]+/", $sql, 4, PREG_SPLIT_NO_EMPTY);
         $tablename = $queryparts[2];
         $alterdefs = $queryparts[3];
         $result = $this->alterTable($tablename, $alterdefs);
     } else {
         if ($this->type == "SQLite2") {
             $result = sqlite_query($sql, $this->conn);
         } else {
             $result = $this->conn->query($sql);
         }
     }
     if (!$result) {
         if ($this->type == "SQLite2") {
             $this->lasterr = sqlite_last_error($this->conn);
             $this->lasterrcode = sqlite_error_string($this->lasterr);
         } elseif ($this->type == "SQLite3") {
             $this->lasterr = $this->conn->lastErrorCode();
             $this->lasterrcode = $this->conn->lastErrorMsg();
         } elseif ($this->type == 'PDO') {
             $this->lasterr = $this->conn->errorCode();
             $this->lasterrcode = implode(',', $this->conn->errorInfo());
         }
         if ($this->_transflag) {
             $this->_transErrors[]['sql'] = $sql;
             $this->_transErrors[]['errcode'] = $this->lasterrcode;
             $this->_transErrors[]['err'] = $this->lasterr;
         } else {
             exit('SQL:' . $sql . ' ERROR_INFO:' . $this->lasterrcode . ',' . $this->lasterr);
             return false;
         }
     } else {
         $this->query_num++;
         $this->lastResult = $result;
         return $result;
     }
 }
 /**
  * 执行一个查询,返回一个 resource 或者 boolean 值
  *
  * @param string $sql
  * @param array $inputarr
  * @param boolean $throw 指示查询出错时是否抛出异常
  * @return resource |boolean
  */
 function execute($sql, $inputarr = null, $throw = true)
 {
     if (substr($sql, 0, 11) == "INSERT INTO") {
         // 删除SQL中的指定的表,SQLITE不支持在插入中语句有表名在前面
         $len1 = strpos($sql, '(');
         $len2 = strpos($sql, ')');
         $len3 = strpos($sql, 'VALUES');
         $temp = array();
         if ($len2 < $len3) {
             $temp[] = substr($sql, 0, $len1);
             $temp[] = substr($sql, $len1, $len2 - $len1);
             $temp[] = substr($sql, $len2);
             $temp[1] = eregi_replace("[a-z_0-9]+\\.", "", $temp[1]);
             $sql = implode($temp);
         }
     }
     if (is_array($inputarr)) {
         $sql = $this->_prepareSql($sql, $inputarr);
     }
     if ($this->enableLog) {
         $this->log[] = $sql;
         log_message("sql:\n{$sql}", 'debug');
     }
     $result = $this->conn->query($sql);
     if ($result !== false) {
         $this->lasterr = null;
         $this->lasterrcode = null;
         return $result;
     }
     $this->lasterrcode = $this->conn->errorCode();
     $this->lasterr = $this->conn->errorInfo();
     if (!$throw) {
         return false;
     }
     FLEA::loadClass('FLEA_Db_Exception_SqlQuery');
     __THROW(new FLEA_Db_Exception_SqlQuery($sql, $this->lasterr[2], $this->lasterrcode));
     return false;
 }
예제 #4
0
 /**
  * Returns the numerical value of the error message from previous
  * MySQL operation
  *
  * @return int Returns the error number from the last MySQL function
  * , or 0 (zero) if no error occurred.
  * @deprecated since version 2.6.0 - alpha 3. Switch to doctrine connector.
  */
 public function errno()
 {
     $this->deprecated();
     return $this->conn->errorCode();
 }