|
|
<?php |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace think\db\builder; |
|
|
|
|
|
use think\db\Builder; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Sqlite extends Builder |
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function parseLimit($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; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected function parseRand() |
|
|
{ |
|
|
return 'RANDOM()'; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected function parseKey($key, $options = [], $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); |
|
|
if ('__TABLE__' == $table) { |
|
|
$table = $this->query->getTable(); |
|
|
} |
|
|
if (isset($options['alias'][$table])) { |
|
|
$table = $options['alias'][$table]; |
|
|
} |
|
|
} |
|
|
if (isset($table)) { |
|
|
$key = $table . '.' . $key; |
|
|
} |
|
|
return $key; |
|
|
} |
|
|
} |
|
|
|