Mysqli扩展是不加载,尽管是存在于php.ini文件与其他配置到位[重复]

lokaqttq  于 2023-01-16  发布在  PHP
关注(0)|答案(1)|浏览(116)
    • 此问题在此处已有答案**:

How to solve "Fatal error: Class 'MySQLi' not found"?(25个答案)
6小时前关门了。
我知道dl()函数不再工作,我已经尝试按照我找到的每一个指令,但我仍然不能让mysqli扩展与我的php工作。
phpinfo()中,"Loaded Configuration File""C:\MAMP\conf\php8.0.1\php.ini"。我打开了这个文件,在第543行和第544行有这样的内容

; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:\MAMP\bin\php\php8.0.1\ext\"

这也与我在 "extension_dir" 下从phpinfo()获得的内容相匹配。
我还检查了指定的文件夹,它包含了一个名为 "php_mysqli.dll" 的文件,以及许多其他的dll文件。另外,在前面提到的php.ini文件中,我在第671到673行看到了以下内容:

extension=php_exif.dll
extension=php_mysqli.dll
extension=php_pdo_sqlite.dll

(The唯一的例外是,在所有这些报告中,"扩展"一词都是斜体字;但对于文件中未注解掉的其他键也是一样的。)我也重新启动了服务器,实际上是整个系统,只是为了确认一下,但仍然没有加载。我使用phpinfo()extension_loaded('mysqli')进行检查。我在Windows 11上运行php 8。
我还 checkout 了this question,我在Apache24配置文件(httpd.conf)中找到了PHPIniDir,但它的值是"C:\MAMP\conf\php8.0.1\php.ini",这是我的php使用的 "加载的配置文件",我不确定,但我认为我不应该编辑它。
既然mysqli扩展显然没有注解掉,而且其他一切似乎都已就绪,那么为什么没有加载它呢?是不是还有什么我可能遗漏了的东西?
编辑:当我将php.ini文件中extension_dir的值从"C:\MAMP\bin\php\php8.0.1\ext\"改为"C:\php\ext"时,这个问题得到了解决。扩展名存在于两个文件夹中,所以我猜测前者是MAMP希望它读取的位置,而后者是它最初应该读取的位置。另外,这也是我在安装MAMP之前最初安装PHP的位置。不确定它起作用的确切原因,但它确实起作用了。

xiozqbni

xiozqbni1#

将php.ini文件中的“extension_dir”的值更改为“C:\php\ext”解决了我的问题。

相关问题