示例#1
0
 function &_Execute($sql, $inputarr = false)
 {
     if ($this->debug) {
         global $ADODB_INCLUDED_LIB;
         if (empty($ADODB_INCLUDED_LIB)) {
             include ADODB_DIR . '/adodb-lib.inc.php';
         }
         $this->_queryID = _adodb_debug_execute($this, $sql, $inputarr);
     } else {
         $this->_queryID = @$this->_query($sql, $inputarr);
     }
     /************************
     		// OK, query executed
     		*************************/
     if ($this->_queryID === false) {
         // error handling if query fails
         if ($this->debug == 99) {
             adodb_backtrace(true, 5);
         }
         $fn = $this->raiseErrorFn;
         if ($fn) {
             $fn($this->databaseType, 'EXECUTE', $this->ErrorNo(), $this->ErrorMsg(), $sql, $inputarr, $this);
         }
         $false = false;
         return $false;
     }
     if ($this->_queryID === true) {
         // return simplified recordset for inserts/updates/deletes with lower overhead
         $rsclass = $this->rsPrefix . 'empty';
         $rs = class_exists($rsclass) ? new $rsclass() : new ADORecordSet_empty();
         return $rs;
     }
     // return real recordset from select statement
     $rsclass = $this->rsPrefix . $this->databaseType;
     $rs = new $rsclass($this->_queryID, $this->fetchMode);
     $rs->connection =& $this;
     // Pablo suggestion
     $rs->Init();
     if (is_array($sql)) {
         $rs->sql = $sql[0];
     } else {
         $rs->sql = $sql;
     }
     if ($rs->_numOfRows <= 0) {
         global $ADODB_COUNTRECS;
         if ($ADODB_COUNTRECS) {
             if (!$rs->EOF) {
                 $rs =& $this->_rs2rs($rs, -1, -1, !is_array($sql));
                 $rs->_queryID = $this->_queryID;
             } else {
                 $rs->_numOfRows = 0;
             }
         }
     }
     return $rs;
 }
示例#2
0
 function _Execute($sql, $inputarr = false)
 {
     // ExecuteCursor() may send non-string queries (such as arrays),
     // so we need to ignore those.
     if (is_string($sql)) {
         // Strips keyword used to help generate SELECT COUNT(*) queries
         // from SQL if it exists.
         $sql = ADODB_str_replace('_ADODB_COUNT', '', $sql);
     }
     if ($this->debug) {
         global $ADODB_INCLUDED_LIB;
         if (empty($ADODB_INCLUDED_LIB)) {
             include ADODB_DIR . '/adodb-lib.inc.php';
         }
         $this->_queryID = _adodb_debug_execute($this, $sql, $inputarr);
     } else {
         $this->_queryID = @$this->_query($sql, $inputarr);
     }
     // ************************
     // OK, query executed
     // ************************
     // error handling if query fails
     if ($this->_queryID === false) {
         if ($this->debug == 99) {
             adodb_backtrace(true, 5);
         }
         $fn = $this->raiseErrorFn;
         if ($fn) {
             $fn($this->databaseType, 'EXECUTE', $this->ErrorNo(), $this->ErrorMsg(), $sql, $inputarr, $this);
         }
         return false;
     }
     // return simplified recordset for inserts/updates/deletes with lower overhead
     if ($this->_queryID === true) {
         $rsclass = $this->rsPrefix . 'empty';
         $rs = class_exists($rsclass) ? new $rsclass() : new ADORecordSet_empty();
         return $rs;
     }
     // return real recordset from select statement
     $rsclass = $this->rsPrefix . $this->databaseType;
     $rs = new $rsclass($this->_queryID, $this->fetchMode);
     $rs->connection = $this;
     // Pablo suggestion
     $rs->Init();
     if (is_array($sql)) {
         $rs->sql = $sql[0];
     } else {
         $rs->sql = $sql;
     }
     if ($rs->_numOfRows <= 0) {
         global $ADODB_COUNTRECS;
         if ($ADODB_COUNTRECS) {
             if (!$rs->EOF) {
                 $rs = $this->_rs2rs($rs, -1, -1, !is_array($sql));
                 $rs->_queryID = $this->_queryID;
             } else {
                 $rs->_numOfRows = 0;
             }
         }
     }
     return $rs;
 }