本文整理汇总了PHP中MySQLi::more_results方法的典型用法代码示例。如果您正苦于以下问题:PHP MySQLi::more_results方法的具体用法?PHP MySQLi::more_results怎么用?PHP MySQLi::more_results使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MySQLi
的用法示例。
在下文中一共展示了MySQLi::more_results方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: multiQuery
public function multiQuery($sSQL)
{
$start = microtime(true);
$this->connect();
// Increase the counter
$this->query_counter++;
$result = $this->connection->multi_query(trim($sSQL));
// FLUSH RESULTS
// @TODO make these usable
do {
$r = $this->connection->store_result();
if ($r) {
$r->free();
}
if (!$this->connection->more_results()) {
break;
}
//$this->connection->next_result();
} while ($this->connection->next_result());
$duration = microtime(true) - $start;
$this->addQueryLog($sSQL, $duration);
if (!$result) {
//var_dump (debug_backtrace ());
//$data = debug_backtrace ();
//print_r ($data);
//echo $sSQL;
$ex = new DbException('MySQL Error: ' . $this->connection->error);
$ex->setQuery($sSQL);
throw $ex;
} elseif ($result instanceof MySQLi_Result) {
return new Result($result);
}
// Insert ID will return zero if this query was not insert or update.
$this->insert_id = intval($this->connection->insert_id);
// Affected rows
$this->affected_rows = intval($this->connection->affected_rows);
if ($this->insert_id > 0) {
return $this->insert_id;
}
if ($this->affected_rows > 0) {
return $this->affected_rows;
}
return $result;
}
示例2: cleanConnection
protected function cleanConnection()
{
while ($this->dbcon->more_results()) {
$this->dbcon->next_result();
$res = $this->dbcon->use_result();
if ($res instanceof mysqli_result) {
$res->free();
}
}
}
示例3: _multiQuery
protected function _multiQuery($query)
{
$this->connect();
$this->_driver->multi_query($query);
if ($this->_driver->error) {
throw new Miaox_SphinxQl_Connection_Exception('[' . $this->_driver->errno . '] ' . $this->_driver->error . ' [ ' . $query . ']');
}
$result = array();
$count = 0;
do {
if (false !== ($resource = $this->_driver->store_result())) {
$result[$count] = array();
while (!is_null($row = $resource->fetch_assoc())) {
$result[$count][] = $row;
}
$resource->free_result();
}
$count++;
} while ($this->_driver->more_results() && $this->_driver->next_result());
return $result;
}
示例4: query
/**
* Runs a query and returns a result object
*
* @param string $query
* @return Application_Model_Queryresult
*/
public function query($query)
{
// If there is no query we can't really do anything
if (!$query) {
$this->error = 'No query was requested.';
return false;
}
// If there is no connection handle, get one
if (!$this->_dbh) {
$this->_getDbh();
}
$return = false;
// Check again to make sure we are good
if ($this->_dbh) {
// Start stacking
Application_Model_Queryprofiler::setQuery($query);
// Start the timer
$start = microtime(true);
// Handle processing of the result data setting
//$rs = $this->_dbh->query($query);
$result = new Application_Model_Queryresult();
if ($this->_dbh->multi_query($query)) {
do {
if (($rs = $this->_dbh->use_result()) !== false) {
$result->setResult($rs);
$rs->free();
} else {
if ($this->_dbh->errno) {
// there was an error
$this->error .= ' ' . $this->_dbh->error;
}
}
} while ($this->_dbh->more_results() && $this->_dbh->next_result());
} else {
if (($rs = $this->_dbh->query($query)) !== false) {
$result->setResult($rs);
$rs->free();
} else {
if ($this->_dbh->errno) {
$this->error = $this->_dbh->error;
}
}
}
// Stop the time
$stop = microtime(true);
// Handle errors
//if ($this->_dbh->error) {
// $this->error = $this->_dbh->error;
//}
// Handle timer
$totaltime = $stop - $start;
Application_Model_Queryprofiler::setQueryTime($totaltime);
Application_Model_Queryprofiler::setQueryError($this->error);
// Set the result sets, record sets and statistics
$result->setResultStats();
//$return = $rs;
$return = $result;
} else {
$this->error = 'There is no database connector.';
}
return $return;
}