driftpiao
(Driftpiao)
1
最近将练手的一个程序放在centos5系统中运行,发现两个问题,程序数据库操作都是基于DAO进行的。
public function actionIndex()
{
$criteria=new CDbCriteria();
$sql = 'SELECT subject,picture
FROM cases
ORDER BY createtime ASC';
$query = Yii::app()->db->CreateCommand($sql);
$res = $query->query();
/*此处最后改成了 $res = $query->queryAll(); */
$pages=new CPagination($res->rowCount);
/*此处最后改成了 $pages=new CPagination(count($res));*/
$pages->pageSize = 8;
$pages->applyLimit($criteria);
$query = Yii::app()->db->createCommand($sql.' LIMIT :offset,:limit');
$query->bindValue(':offset',$pages->currentPage*$pages->pageSize);
$query->bindValue(':limit', $pages->pageSize);
$this->v['posts'] = $query->queryAll();
$this->v['pages'] = $pages;
$this->title = '设计案例';
$this->render("../{$this->id}-{$this->action->id}",$this->v);
}
1、分页统计问题
此段代码在windows下运行正常,但在linux中运行时数据库则会出现Cannot execute queries while other unbuffered queries are active错误。
后将第一次执行的代码$res = $query->query();改为$res = $query->queryAll();及$pages=new CPagination($res->rowCount);改为$pages=new CPagination(count($res));后运行成功。
2、视图载入部分问题
此段代码的视图载入部分$this->render("../{$this->id}-{$this->action->id}",$this->v);中的视图文件是直接放在views目录中,所以采用../加视图名称的方式,此段在windows中也是运行正常,但在linux中则会出现找不到模板的错误提示,最后只有在views目录中创建与控制名称相同的空目录后正常,看来linux必须要有目录存在,然后才能基于存在的目录执行../进入上一级。
以上算是分享经验吧,关于第一个问题不知大家有没有更好的办法解决,如有希望能跟帖分享,谢谢。
clhqk
(cuileon)
2
应该是PHP版本的问题,建议你换最新版本或比较稳定的版本!
cdcchen
(Cdcchen)
3
最好贴一下trace信息,如果真是bug,也可以一块学习下
找不到模块的错误看一下是否是大小的问题
driftpiao
(Driftpiao)
4