使用建站市场和自己搭建环境,安装微擎报错。请管理帮忙看下

明天 2019-1-20 1563

连接数据库报错:

Fatal error: Uncaught Error: Call to a member function fetch() on bool in /data/0579/sites/wx/www/install.php:250 Stack trace: #0 {main} thrown in /data/0579/sites/wx/www/install.php on line 250

环境:

最新回复 (3)
  • 虚竹 2019-1-20
    引用 2
    PHP安全设置里开启允许程序访问外网试试。
  • 明天 2019-1-20
    引用 3



    开启还是无效,要不要后台提交工单?

  • didiao 2019-1-21
    引用 4
    微擎安装程序,在特定情况下报错。
    数据库名格式为: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数据库会直接报错,所以要用``包含

    所以我猜测是这里的问题,如果不是,那你只能求助微擎官方了

返回
发新帖