微擎安装程序,在特定情况下报错。
数据库名格式为:xxx.xxx.com
的情况下,安装会报错:Fatal error: Call to a member function fetch() on boolean in
为什么会出现这个错误,我们研究一下代码
$link->exec("USE {$db['name']}");
$statement = $link->query("SHOW TABLES LIKE '{$db['prefix']}%';");
if ($statement->fetch()) {//这是250行
$error = '您的数据库不为空,请重新建立数据库或是清空该数据库或更改表前缀!';
}
从错误来看,$statement显然这个值并不是期望的,期望值是一个数据库对象集,现在返回的应该是flase
所以我们追溯到上一行,但是上一行代码是没有什么问题的,$db['prefix']属于一个安装自行输入值,但是我觉得懂安装的人应该不会犯这种小错误,一定是字母或字母+数字的组合,那么也没有问题,那只能继续向上追溯
$link->exec("USE {$db['name']}");
这话说说实在也没有问题,但是并不严谨,当{$db['name']带点的时候,MYSQL数据库会直接报错,所以要用``包含
所以我猜测是这里的问题,如果不是,那你只能求助微擎官方了