為何我跟著老師寫解析order by,代碼一樣,但是執(zhí)行的時候傳入$order 卻被忽略了呢
/*函數(shù)調(diào)用部分*/
public static function find($tables,$where=null,$fields='*',$group=null,$hanving=null,$order=null,$limit=null){
$sql = 'select '.self::parseFields($fields).' from '.$tables
.self::parseWhere($where)
.self::parseGRoup($group)
.self::parseHaving($hanving)
.self::parseOrder($order)
.self::parseLimit($limit);
$dataAll = self::getAll($sql);
return count($dataAll)==1?$dataAll[0]:$dataAll;
}
/*解析order by 部分*/
public static function parseOrder($order){
$orderStr = '';
if(is_array($order)){
$orderStr = ' order by '.join(',',$order);
}elseif(is_string($order)&&empty($order)){
$orderStr = ' order by '.$order;
}
return $orderStr;
}
/*執(zhí)行調(diào)用部分*/
$tables = 'cj_setting';
var_dump($PdoMySQL->find($tables,null,'*',null,null,'present desc','4,3'));
老師和各位前輩大哥大姐,能給解惑么,萬分感謝,可能是我粗心,但是我真沒發(fā)現(xiàn)那里錯了。。
如果我在limit的參數(shù)中添加錯誤的,就會報錯,添加正確的,能正常獲取數(shù)據(jù),但確確實實,order by部分被忽略掉了。。
2018-01-19
elseif(is_string($order)&&empty($order))這里empty前面漏了個感嘆號取反吧,應(yīng)該是!empty($order)