| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | <?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK ]// +----------------------------------------------------------------------// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )// +----------------------------------------------------------------------// | Author: liu21st <liu21st@gmail.com>// +----------------------------------------------------------------------namespace think\db\builder;use think\db\Builder;use think\db\Query;/** * Sqlite数据库驱动 */class Sqlite extends Builder{    /**     * limit     * @access public     * @param  Query     $query        查询对象     * @param  mixed     $limit     * @return string     */    public function parseLimit(Query $query, $limit)    {        $limitStr = '';        if (!empty($limit)) {            $limit = explode(',', $limit);            if (count($limit) > 1) {                $limitStr .= ' LIMIT ' . $limit[1] . ' OFFSET ' . $limit[0] . ' ';            } else {                $limitStr .= ' LIMIT ' . $limit[0] . ' ';            }        }        return $limitStr;    }    /**     * 随机排序     * @access protected     * @param  Query     $query        查询对象     * @return string     */    protected function parseRand(Query $query)    {        return 'RANDOM()';    }    /**     * 字段和表名处理     * @access public     * @param  Query     $query     查询对象     * @param  mixed     $key       字段名     * @param  bool      $strict   严格检测     * @return string     */    public function parseKey(Query $query, $key, $strict = false)    {        if (is_numeric($key)) {            return $key;        } elseif ($key instanceof Expression) {            return $key->getValue();        }        $key = trim($key);        if (strpos($key, '.')) {            list($table, $key) = explode('.', $key, 2);            $alias = $query->getOptions('alias');            if ('__TABLE__' == $table) {                $table = $query->getOptions('table');                $table = is_array($table) ? array_shift($table) : $table;            }            if (isset($alias[$table])) {                $table = $alias[$table];            }        }        if (isset($table)) {            $key = $table . '.' . $key;        }        return $key;    }}
 |