选择语言 :

 Module_Database::query

执行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
File: ./modules/database/database.class.php
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;
}