2016-04-18

StartBBS节点和帖子分页发生数据库错误ErrorNumber: 1064

烧饼SB轻社区节点(node/show/1/2)和帖子评论(topic/show/3/4)分页参数不正确(等于0或非数字)时出现Error Number: 1064并提示发生了一个数据库错误,错误位置分别在models/topic_m.php第54行和models/comment_m.php第31行,这是分页参数未经处理就直接拿去执行所导致的后果

节点和帖子url参数中第一个数字是节点或帖子id号,第二个数字是分页page参数,解决方法在app/node.php(节点)和app/topic.php(帖子)的$this->load->library(‘pagination’)语句前插入【$page = intval($page);if($page==0) $page = 1;】把分页参数强制转换为整数,如果为0就显示第一页的内容。

这里还有一个问题,分页参数大于实际页数(比如只有3页内容但分页码数为4时)会显示空白无内容的页面,我们可以插入以下代码来解决这个问题:
if($page>1){ //如果分页参数大于1
$number = $config[‘total_rows’]/$limit; //总条数除以每页数量得到实际页数
if(is_float($number)) $number=intval($number)+1; //如果得到的页数为为浮点数类型,我们需要将其整数化并加1得到实际页数
if($page>$number) $page = $number; //如果分页参数大于实际页数时 将显示最后一页的内容
}

节点不存在时出现错误的解决方法

“本文点击量 467 人次”
© 每日维修 Tiait.com ϟ