MySQLi不缺少

时间:2014-05-06 21:19:10

标签: php mysqli xdebug php-5.3

我正在尝试编写连接MySQL数据库的PHP。我的调试器告诉我找不到类mysqli。但我的phpinfo()在已解析的conf.d/mysqli.ini列表中有.ini

要调试此代码,我使用的是Eclipse PDT Xdebug。为什么调试器无法找到'mysqli'??

注意:我不确定这是否相关,但这是PHP可执行文件的配置:

PHP executable: /usr/bin/php5
Additional .ini:  /etc/php5/conf.d/xdebug.ini

以下是来自控制台的实际错误消息:

Fatal error: Class 'mysqli' not found in /var/www/RBDM_Project/WebContent/login.php on line 8

Call Stack:
    0.0099     333880   1. {main}() /var/www/RBDM_Project/WebContent/login.php:0

代码的第8行:

 $db = new mysqli("URL","user","password","db");

更新:我想我可能会输入一个截图形式phpinfo() enter image description here

2 个答案:

答案 0 :(得分:1)

这些问题/建议作为评论可能会更好,但作为Stack Overflow的新手,我无法发表评论。

  1. 您是否安装了多个版本的PHP?我只是模糊地熟悉Eclipse PDT,所以我不确定它是如何调用PHP的。但是如果您的系统上安装了多个版本,您可能需要检查对phpversion的调用输出,以确保正在执行正确版本的PHP。

  2. 你自己编译PHP了吗? phpinfo输出中的configure options行是否显示'--with-mysqli = mysqlnd'?它应该是因为您发布的屏幕截图显示启用了mysqli,但此时检查它不会有什么坏处。

  3. 您可能已经完成的最后一些建议,验证扩展所依赖的库以及您在php.ini中的配置。这是您可能已经看过的旧帖子,但它有一些详细信息: Fatal error: Class 'MySQLi' not found

答案 1 :(得分:1)

你基本上是正确的,事实证明,因为我在libapache2-mod-php5之后安装了mysqli(我认为这就是它所谓的),我不得不重新编译libapache2-mod-php5。出于某种原因,当我安装额外的php模块时没有发生。

然后我再次确定它应该由包管理器完成,或者我是否每次都需要自己完成。

长话短说我重新安装了libapache2-mod-php5,我得到了理想的结果。