phpStorm:在类mysqli

时间:2015-08-30 10:44:58

标签: php mysql mysqli

我正在学习PHP并且正在使用MySQL。当我开始使用预准备语句时,我转而使用MySQLi,但是我的IDE(phpStorm)中出现了错误:Method error not found in class mysqli

我在SO上查看了相关问题,并在问题Fatal error: Class 'MySQLi' not found中找到了答案。我使用了sudo apt-get install php5-mysqlnd命令,并且从终端命令看来mysqlnd包已成功安装。

这是一个屏幕抓取:
enter image description here

完成后,我运行了这个命令(来自我找到的某个帖子):php -m | grep -i mysql并得到输出mysql mysqli mysqlnd pdo_mysql

好像已经安装了软件包,但是我仍然在phpstorm中遇到同样的错误,就像在这个屏幕上看到的那样:

enter image description here

最终,MySQLi终于安装了吗?我需要以某种方式重新配置PHPStorm吗?我在设置下去了“语言和框架”,但没有找到任何新配置。

我的PHP版本是(我认为)PHP version: 5.5.9-1ubuntu4.11

2 个答案:

答案 0 :(得分:2)

  

我是否需要以某种方式重新配置PHPStorm?

您实际需要的只是阅读错误信息 它没有说没有安装mysqli。它宁可说mysqli本身也没问题,但是访问一个不存在的方法存在问题。这确实从未存在过。

  

当我开始使用预准备语句时,我转而使用MySQLi

您应该切换到PDO。

  

那是问题吗?

问题在于你正在阅读的书。这是使用不存在的方法和充满错别字。如果您想学习一些PHP扩展,请从手册页中学习。

答案 1 :(得分:0)

您的代码为:

if (! $link) {
    die("Connection failed: ".$link->error());
}

班级mysqli没有任何名为error()的方法。它有一个名为$error的属性,但这是完全不同的东西。

但是等等!还有更多!

上面代码中执行的die()语句是什么时候?当$linkNULL时。 NULL是否有名为error()的方法?我真诚地怀疑。

  

最终,MySQLi终于安装好了吗?

问题的答案在php -m部分。如果您在mysqli的输出中看到php -m | grep -i mysql,那么它已安装并准备就绪。