function adodb_strip_count_keyword($sql) { return ADODB_str_replace('_ADODB_COUNT', '', $sql); }
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; }