-
-
Object_is_null
2017-12-06
- //对分组结果通过Having子句进行二次删选
//设置的Having条件必须为字符串且有值,否则返回空字符串
public static function parseHaving($having){
$havingStr='';
if(is_string($having)&&!empty($having)){
$havingStr.=' HAVING '.$having;
}
return $havingStr;
}
//解析Order by
//设置的Order by条件必须为 数组 或 有字符的字符串,否则返回空字符串
public static function parseOrder($order){
$orderStr='';
if(is_array($order)){
//join()拼接数组成字符串
$orderStr.=' ORDER BY '.join(',',$order);
}elseif(is_string($order)&&!empty($order)){
$orderStr.=' ORDER BY '.$order;
}
return $orderStr;
}
//解析限制显示条数limit
//设置的limit条件必须为 数组 或 有字符的字符串,否则返回空字符串
public static function parseLimit($limit){
$limitStr='';
if(is_array($limit)){
if(count($limit)>1){
//从第$limit[0]条记录往下去$limit[1]条记录
//防止用户输入多于两个的数组值,所有不用join(),implode()等函数
$limitStr.=' LIMIT '.$limit[0].','.$limit[1];
}else{
$limitStr.=' LIMIT '.$limit[0]; //从第一条记录开始往下去$limit[0]条记录
}
}elseif(is_string($limit)&&!empty($limit)){
$limitStr.=' LIMIT '.$limit;
}
return $limitStr;
}
-
0赞 · 0采集
-
-
Object_is_null
2017-12-06
- //执行普通查询
public static function find($tables,$where=null,$fields='*',$group=null,$having=null,$order=null,$limit=null){
$sql='SELECT '.self::parseFields($fields).' FROM '.$tables
.self::parseWhere($where)
.self::parseGroup($group)
.self::parseHaving($having)
.self::parseOrder($order)
.self::parseLimit($limit);
$dataAll=self::getAll($sql);
//count(array,mode)返回数组中元素的数目。mode=0:返回第一维数组元素数目, mode=1:返回所有数组元素数目
return count($dataAll)==1?$dataAll[0]:$dataAll;
}
//解析Where条件
//设置的where条件必须为字符串且有值,否则返回空字符串
public static function parseWhere($where){
$whereStr='';
if(is_string($where)&&!empty($where)){
$whereStr=' WHERE '.$where;
}
return $whereStr;
}
//解析group by条件
//设置的group by条件必须为 数组 或 有字符的字符串,否则返回空字符串
public static function parseGroup($group){
$groupStr='';
if(is_array($group)){
//implode()拼接数组成字符串
$groupStr.=' GROUP BY '.implode(',',$group);
}elseif(is_string($group)&&!empty($group)){
$groupStr.=' GROUP BY '.$group;
}
return $groupStr;
}
-
0赞 · 0采集
-
-
黄枪枪
2017-02-13
- 15.对分组结果通过Having子句进行二次删选
//设置的Having条件必须为字符串且有值,否则返回空字符串
public static function parseHaving($having){
$havingStr='';
if(is_string($having)&&!empty($having)){
$havingStr.=' HAVING '.$having;
}
return $havingStr;
}
16.解析Order by
//设置的Order by条件必须为 数组 或 有字符的字符串,否则返回空字符串
public static function parseOrder($order){
$orderStr='';
if(is_array($order)){
//join()拼接数组成字符串
$orderStr.=' ORDER BY '.join(',',$order);
}elseif(is_string($order)&&!empty($order)){
$orderStr.=' ORDER BY '.$order;
}
return $orderStr;
}
17.解析限制显示条数limit
//设置的limit条件必须为 数组 或 有字符的字符串,否则返回空字符串
public static function parseLimit($limit){
$limitStr='';
if(is_array($limit)){
if(count($limit)>1){
//从第$limit[0]条记录往下去$limit[1]条记录
//防止用户输入多于两个的数组值,所有不用jion(),implode()等函数
$limitStr.=' LIMIT '.$limit[0].','.$limit[1];
}else{
$limitStr.=' LIMIT '.$limit[0]; //从第一条记录开始往下去$limit[0]条记录
}
}elseif(is_string($limit)&&!empty($limit)){
$limitStr.=' LIMIT '.$limit;
}
return $limitStr;
}
-
0赞 · 0采集
-
-
黄枪枪
2017-02-13
- 12.执行普通查询
public static function find($tables,$where=null,$fields='*',$group=null,$having=null,$order=null,$limit=null){
$sql='SELECT '.self::parseFields($fields).' FROM '.$tables
.self::parseWhere($where)
.self::parseGroup($group)
.self::parseHaving($having)
.self::parseOrder($order)
.self::parseLimit($limit);
$dataAll=self::getAll($sql);
//count(array,mode)返回数组中元素的数目。mode=0:返回第一维数组元素数目, mode=1:返回所有数组元素数目
return count($dataAll)==1?$dataAll[0]:$dataAll;
}
13.解析Where条件
//设置的where条件必须为字符串且有值,否则返回空字符串
public static function parseWhere($where){
$whereStr='';
if(is_string($where)&&!empty($where)){
$whereStr=' WHERE '.$where;
}
return $whereStr;
}
14.解析group by条件
//设置的group by条件必须为 数组 或 有字符的字符串,否则返回空字符串
public static function parseGroup($group){
$groupStr='';
if(is_array($group)){
//implode()拼接数组成字符串
$groupStr.=' GROUP BY '.implode(',',$group);
}elseif(is_string($group)&&!empty($group)){
$groupStr.=' GROUP BY '.$group;
}
return $groupStr;
}
-
0赞 · 0采集
-
-
流浪佳人纳入怀
2016-10-28
- 普通查询(where,group by, order by, limit)
分别获取对应的解析处理,得到sql语句,返回结果
-
截图
0赞 · 0采集
-
-
流浪佳人纳入怀
2016-10-28
- parseWhere():where条件解析处理
-
截图
0赞 · 0采集
-
-
流浪佳人纳入怀
2016-10-28
- [PDO] 数据库操作类之条件查询:条件参数处理
-
截图
0赞 · 0采集
-
-
RRadix
2016-06-03
- “Where” 是一个约束声明,使用Where来约束来之数据库的数据,Where是在结果返回之前起作用的,且Where中不能使用聚合函数。
“Having”是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。
在说区别之前,得先介绍GROUP BY这个子句,而在说GROUP子句前,又得先说说“聚合函数”——SQL语言中一种特殊的函数。例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。
-
0赞 · 0采集
-
-
辉煌
2015-02-21
- 还不错,希望工作能用上
-
截图
0赞 · 0采集
-
-
辉煌
2015-02-21
- 还不错,希望工作能用上
-
截图
0赞 · 0采集