查询条件处理
This commit is contained in:
@@ -31,9 +31,11 @@ class Sql
|
||||
$this->param = [];
|
||||
$this->filter = '';
|
||||
if ($where) {
|
||||
$this->filter .= ' WHERE ';
|
||||
if(!strpos('$this->filter','WHERE') !== false){
|
||||
$this->filter .= ' WHERE ';
|
||||
}
|
||||
if (is_string($where)) {
|
||||
$this->filter .= ' ' . $where;
|
||||
$this->filter .= ' WHERE ' . $where;
|
||||
} else {
|
||||
$flag = true;
|
||||
foreach ($where as $key => $value) {
|
||||
@@ -69,6 +71,73 @@ class Sql
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 查询条件 处理复杂查询条件
|
||||
* @param {*} [ 'day_time' => [ ['>' , val1], ['<' , val2] ] ]
|
||||
* @return {*}
|
||||
*/
|
||||
public function wheres($where)
|
||||
{
|
||||
$this->param = [];
|
||||
$this->filter = '';
|
||||
if ($where) {
|
||||
|
||||
if(!strpos('$this->filter','WHERE') !== false){
|
||||
$this->filter .= ' WHERE ';
|
||||
}
|
||||
if (is_string($where)) {
|
||||
$this->filter .= ' WHERE ' . $where;
|
||||
} else {
|
||||
$flag = true;
|
||||
foreach ($where as $key => $value) {
|
||||
if ($flag) {
|
||||
$flag = false;
|
||||
if (is_array($value)) {
|
||||
$flag2 = true;
|
||||
foreach($value as $k => $v) {
|
||||
if($flag2){
|
||||
$flag2 = false;
|
||||
if($v[0] == 'in'){
|
||||
$this->filter .= ' `' . $key . '` ' . $v[0] . '('.implode(',',$v[1]).')';
|
||||
} else {
|
||||
$this->filter .= ' `' . $key . '` ' . $v[0] . ' :' . $key.$k;
|
||||
$this->param[$key.$k] = $v[1];
|
||||
}
|
||||
} else {
|
||||
if($v[0] == 'in'){
|
||||
$this->filter .= ' AND `' . $key . '` ' . $v[0] . '('.implode(',',$v[1]).')';
|
||||
} else {
|
||||
$this->filter .= ' AND `' . $key . '` ' . $v[0] . ' :' . $key.$k;
|
||||
$this->param[$key.$k] = $v[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$this->filter .= ' `' . $key . '` = :' . $key;
|
||||
$this->param[$key] = $value;
|
||||
}
|
||||
} else {
|
||||
if (is_array($value)) {
|
||||
foreach($value as $k => $v) {
|
||||
if($v[0] == 'in'){
|
||||
$this->filter .= ' AND `' . $key . '` ' . $v[0] . '('.implode(',',$v[1]).')';
|
||||
} else {
|
||||
$this->filter .= ' AND `' . $key . '` ' . $v[0] . ' :' . $key.$k;
|
||||
$this->param[$key.$k] = $v[1];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$this->filter .= ' AND `' . $key . '` = :' . $key;
|
||||
$this->param[$key] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 拼装排序条件
|
||||
* @param array $order 排序条件
|
||||
|
||||
Reference in New Issue
Block a user