【问题标题】:Class 'mysqli' not found PHP v5.6.7找不到类 'mysqli' PHP v5.6.7
【发布时间】:2015-04-08 00:18:51
【问题描述】:

在我的 Windows 7 机器上,使用 PHP v5.6.7 和 MySQL v5.6.23,并使用 PHPStorm 8,我正在尝试实例化一个 mysqli 对象。当我尝试时,我得到:

Fatal error: Class 'mysqli' not found in...

我也跑过这个测试,建议here:

 if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) {
      echo 'no mysqli :(';
 } else {
      echo 'we gots it';
 }

输出是:

no mysqli :(

我读到here 说这个问题有时是在它在命名空间中查找 mysqli 类时引起的。我更改了代码以更正此问题,但问题仍然存在

$mysqli = new \mysqli($host, $userName, $password, $database);

我读到这个问题有时是在未启用 mysqli 扩展时引起的。但是,我使用的是 PHP 5.6.7 版本,并且 mysqli 扩展在 5.3 及更高版本上默认启用(根据here)。

为了确定,我已经验证 php.ini-developmentphp.ini-productionextension_dir = "C:/PHP/php-5.6.7/ext" 并从行中删除分号:

extension=php_mysql.dll
extension=php_mysqli.dll 

[附加信息] 我找到了一个要运行的测试,根据 phpinfo() 它没有加载配置文件:

Configuration File (php.ini) Path   C:\Windows
Loaded Configuration File   (none)
Scan this dir for additional .ini files (none)
Additional .ini files parsed    (none)

由于某种原因,PHPStorm Web 服务器没有在正确的位置寻找 php.ini?

我在 this 的“解释器选项”中有此设置:

--php-ini C:\PHP\php-5.6.7\php.ini

我已验证这是正确的路径。

【问题讨论】:

  • 我认为 php.ini-development 文件只是模板,您应该复制您想要作为配置基础的文件,并将其放置在 PHP 查找实际文件的位置; php.ini
  • 您对系统文件进行任何更改后是否重新启动了所有服务?另外,你试过不带斜线的$mysqli = new mysqli ... 吗?
  • scrowler,谢谢你的建议。我已经这样做了,但是解析 php.ini 文件似乎出错了。在编辑我的问题之前,我正在做更多的研究。 Fred -ii-,我相信 PHP 没有需要重新启动的正在运行的进程。我相信 PHPStorm 在运行之间会自动重新启动其内部网络服务器。我将尝试重新启动 comp 以确保。我确实尝试过使用和不使用 \.
  • 我在 Wamp 上运行,我记得我必须重新启动我的系统才能在安装后让它工作。这里可能是一样的。
  • 我只是想提一下,如果您查看了他们的清单jetbrains.com/phpstorm/help/php-built-in-web-server.html 和第 4 点。

标签: php mysqli phpstorm


【解决方案1】:

scrowler 和 Michael Bush 在上面的 cmets 中指出了答案。我想我会为它创建一个答案,以使查看该线程的人受益。谢谢,scrowler 和迈克尔·布什。

php.ini-developmentphp.ini-production 文件是模板。为了生效,需要复制其中一个并重命名php.ini

【讨论】:

  • 如果 scrowler 或 Michael Bush 希望在明天之前发布这个答案,我将“接受”你的答案。
【解决方案2】:

你是否将PHP安装目录添加到你的环境路径中

  • 从开始菜单右键单击我的电脑
  • 点击属性
  • 查找高级系统设置
  • 点击环境变量
  • 在系统变量下找到 PATH 添加 C:\php 用你的 PHP 替换 C:\php 安装目录; *** 记住路径分隔符

还要检查你的 php.ini 中的这个条目

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "c:/php/ext"

【讨论】:

  • 是的,php安装在系统路径上。
  • 我相信你需要编辑你的 php.ini 并将 extension_dir 从 extension_dir = "ext" 更改为 extension_dir = "c:/php/ext" 或者你的路径是什么
  • 您是否也可以确认您已将 php.ini-development 或 php.ini-production 复制并重命名为 php.ini
  • 我能看到phpinfo()的输出吗
  • 我得集中精力做功课了。我会尽快回复。
猜你喜欢
  • 2014-12-16
  • 1970-01-01
  • 2016-11-19
  • 2012-04-28
  • 2017-09-20
  • 2018-04-03
  • 2014-04-23
  • 2019-04-04
相关资源
最近更新 更多