本文整理汇总了PHP中MySQLi::multi_query方法的典型用法代码示例。如果您正苦于以下问题:PHP MySQLi::multi_query方法的具体用法?PHP MySQLi::multi_query怎么用?PHP MySQLi::multi_query使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MySQLi
的用法示例。
在下文中一共展示了MySQLi::multi_query方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getDeviceFallBackTree
public function getDeviceFallBackTree($wurflID)
{
if ($this->use_nested_set) {
return $this->getDeviceFallBackTree_NS($wurflID);
}
$data = array();
$this->numQueries++;
$query = sprintf("CALL " . TeraWurflConfig::$TABLE_PREFIX . "_FallBackDevices(%s)", $this->SQLPrep($wurflID));
$this->dbcon->multi_query($query);
$i = 0;
do {
if ($res = $this->dbcon->store_result()) {
$row = $res->fetch_row();
$data[$i++] = unserialize($row[0]);
$res->free();
}
} while ($this->dbcon->more_results() && $this->dbcon->next_result());
if ($i == 0) {
$tw = new TeraWurfl();
$tw->toLog("Tera-WURFL Error: database fallback procedure returned no records, verify that " . TeraWurflConfig::$TABLE_PREFIX . "_FallBackDevices exists.", LOG_ERR, __CLASS__ . '::' . __FUNCTION__);
} else {
if ($data[$i - 1]['id'] != WurflConstants::NO_MATCH) {
$tw = new TeraWurfl();
$tw->toLog("WURFL Error: device {$data[$i - 1]['id']} falls back on an inexistent device: {$data[$i - 1]['fall_back']}", LOG_ERR, __CLASS__ . '::' . __FUNCTION__);
}
}
return $data;
}
示例2: 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;
}
示例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: mysqli_multi_query
public static function mysqli_multi_query($query, $resultmode = MYSQL_STORE_RESULT)
{
$instance = Instrumentation::get_instance();
$retry_count = 0;
while ($retry_count < MySQLi_perf::$deadlock_try_limit) {
$query = $this->instrument_query($query, $retry_count);
$instance->increment('mysql_query_count', 1);
$retry_count = 0;
$sql = Instrumentation::get_instance()->timer();
$r = parent::multi_query($query, $resultmode);
$time = $instance->timer();
$instance->increment('mysql_query_exec_time', $time);
$instance->push_query_log($query, $time);
//1213 (ER_LOCK_DEADLOCK)
if ($this->errno() == 1213) {
//Deadlock detected retry operation
$instance->increment('mysql_deadlock_count', 1);
++$retry_count;
continue;
// loop to the start of the while loop
}
break;
}
return $result;
}
示例5: 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;
}