执行SQL查询
Database_Driver_MySQLI_Result Module_Database::query( string $sql [, boolean $as_object = bool false , boolean $use_master = null ] )
参数列表
参数 类型 描述 默认值 $sql
string
$sql $as_object
boolean
返回对象名称 默认false,即返回数组 bool false $use_master
boolean
是否使用主数据库,不设置则自动判断,对更新的SQL无效 null
Database_Driver_MySQLI_Result
public function query($sql, $as_object = false, $use_master = null)
{
if (null === $use_master && true === $this->is_auto_use_master)
{
$use_master = true;
}
static $slow_query_mtime = null;
if ( null===$slow_query_mtime )
{
if (IS_CLI)
{
$slow_query_mtime = false;
}
else
{
$slow_query_mtime = (int)Core::config('core.slow_query_mtime');
}
}
if ($slow_query_mtime>0)$stime = microtime(1);
$rs = $this->driver->query($sql, $as_object, $use_master);
if ($slow_query_mtime>0)
{
$etime = microtime(1);
$time = 1000*($etime-$stime);
if ( $time>$slow_query_mtime )
{
// 记录慢查询
Database::$slow_querys[] = array
(
(int)$stime,
$time,
$this->driver->last_query(), // 不用$sql是因为比如MongoDB这样的会在driver里再处理
);
}
}
return $rs;
}