在我的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版,默认情况下在版本5.3及更高版本上启用了mysqli扩展(根据here)。
为了确定,我已经确认php.ini-development
和php.ini-production
有extension_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网络服务器并没有在正确的位置寻找php.ini?
我在"口译员选项"中有这个设置。每this:
--php-ini C:\PHP\php-5.6.7\php.ini
我已经确认这是正确的路径。
答案 0 :(得分:5)
您是否已将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"
答案 1 :(得分:5)
php.ini-development
和php.ini-production
文件是模板。为了生效,需要复制其中一个并重命名为php.ini
。