#1 kanchaoyang
最近下载了一个3.0版,发现在使用查找的时候有问题:
$love= spClass("love_share");
$con="type='video' order by dateline desc limit 0,4" ;
$video=$love->findAll($con);
以上的语句会出现错误提示页面: 有两个order by 造成了错误。
根据找到了spModel.php的相应语句:
$where = "";
$fields = empty($fields) ? "*" : $fields;
if(is_array($conditions)){
$join = array();
foreach( $conditions as $key => $condition ){
$condition = $this->__val_escape($condition);
$join[] = "{$key} = '{$condition}'";
}
$where = "WHERE ".join(" AND ",$join);
}else{
if(null != $conditions)$where = "WHERE ".$conditions;
}
if(null != $sort){
$sort = "ORDER BY {$sort}";
}else{
$sort = "ORDER BY {$this->pk}";
}
$sql = "SELECT {$this->tbl_name}.{$fields} FROM {$this->tbl_name} {$where} {$sort}";
if(null != $limit)$sql = $this->_db->setlimit($sql, $limit);
return $this->_db->getArray($sql);
把这段代码改成2.5版的如下:
’
$where = "";
$fields = empty($fields) ? "*" : $fields;
if(is_array($conditions)){
$join = array();
foreach( $conditions as $key => $condition ){
$condition = $this->__val_escape($condition);
$join[] = "{$key} = '{$condition}'";
}
$where = "WHERE ".join(" AND ",$join);
}else{
if(null != $conditions)$where = "WHERE ".$conditions;
}
if(null != $sort)$sort = "ORDER BY {$sort}";
if(null != $limit)$limit = "LIMIT {$limit}";
$sql = "SELECT {$this->tbl_name}.{$fields} FROM {$this->tbl_name} {$where} {$sort} {$limit}";
return $this->_db->getArray($sql);
故障现象消失,不知道是不是我的配置有问题?还是什么原因,请高人指点!
2010-06-30 18:30:00