类'mysqli'找不到PHP v5.6.7

Don*_*ert 8 php mysqli phpstorm

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

Fatal error: Class 'mysqli' not found in...
Run Code Online (Sandbox Code Playgroud)

我也运行了这个测试,建议在这里:

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

输出是:

no mysqli :(
Run Code Online (Sandbox Code Playgroud)

在这里读到,当它在命名空间中查找mysqli类时,有时会引起此问题.我更改了我的代码来纠正这个问题,但问题仍然存在

$mysqli = new \mysqli($host, $userName, $password, $database);
Run Code Online (Sandbox Code Playgroud)

我读到有时在未启用mysqli扩展时会导致此问题.但是,我使用的是PHP 5.6.7版,默认情况下在版本5.3及更高版本(根据此处)启用了mysqli扩展.

只是为了确定,我已经验证了php.ini-development并且php.ini-production已经extension_dir = "C:/PHP/php-5.6.7/ext"从行中删除了分号:

extension=php_mysql.dll
extension=php_mysqli.dll 
Run Code Online (Sandbox Code Playgroud)

[附加信息]我发现要运行的测试,根据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)
Run Code Online (Sandbox Code Playgroud)

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

我在每"翻译选项"此设置:

--php-ini C:\PHP\php-5.6.7\php.ini
Run Code Online (Sandbox Code Playgroud)

我已经证实这是正确的道路.

Mic*_*ush 5

您是否已将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"
Run Code Online (Sandbox Code Playgroud)

  • 你能否确认你已经将php.ini-development或php.ini-production复制并重命名为php.ini (2认同)

Don*_*ert 5

scrowler和Michael Bush在上面的评论中指出了答案.我以为我会为了查看帖子的人的利益创建一个答案.谢谢,scrowler和迈克尔布什.

php.ini-developmentphp.ini-production文件模板.为了起作用,需要复制和重命名其中一个php.ini.