emlog在php7.0中的错误修正
使用mysqli而不是mysql连接数据库
用emlog在本机上安装,apache、php、mysql、目录权限什么的都已经做好了,但打开浏览器,一片空白,什么都不显示。肯定是出了错误。
经过我十几分钟的探索,发现emlog中的mysql连接函数还用的mysql_connect(),已经在php7.0中废弃不用了。
解决办法是在include/lib/option.php中修改DEFAULT_MYSQLCONN变量,象下面这样改可以了
//默认MySQL链接方式,mysql或mysqli
const DEFAULT_MYSQLCONN = 'mysqli';
一个变量也出错了
接下来安装时,又报错了。
SQL语句执行错误: SELECT * FROM emlog_comment WHERE hide='n' ORDER BY date DESC LIMIT 0,
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
刷新显示正常。但提交评论或发表文是还会报上面的错误。
经过查找,发现是include/lib/cache.php中第197行出了问题
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "comment WHERE hide='n' ORDER BY date DESC LIMIT 0, $index_comnum");
看来是因为变量$index_comnum什么也没输出使SQL语句出错了。
找了半天原因也没找到,懒得改了,直接将上句改为
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "comment WHERE hide='n' ORDER BY date DESC LIMIT 0, 10");
一切正常了