mysqli扩展丢失(Windows 10,PHP 7.17,MAMP,)

6za6bjd0  于 2023-10-15  发布在  PHP
关注(0)|答案(3)|浏览(143)

所以我一直在寻找我的问题的答案。每次我去这里http://localhost:8888/phpMyAdmin/,我得到这个错误
所以我用phpinfo()创建了一个php文件,
info.php
然后我转到文件资源管理器并按照目录C:\MAMP\conf\php7.1.7
Loaded Configuration File C:\MAMP\conf\php7.1.7\php.ini
接下来,我在sublime中打开了php.ini文件进行了一些修改(C:\MAMP\conf\php7.1.7\php.ini)。我相信所有的扩展都位于这个目录
C:\MAMP\bin\php\php7.1.7\ext
where I think the php extensions are located at
因此,这些是我对php.ini文件所做的更改(删除;(从前面)
1);目录,其中驻留了扩展插件(模块)。

extension_dir = "C:\MAMP\bin\php\php7.1.7\ext\"

2)动态扩展。

extension=php_mysqli.dll

每次我进行更改并重置浏览器时,我都会重新启动MAMP服务器。我仍然得到相同的“mysqli扩展”缺失错误
我甚至尝试添加一些环境变量路径。
added two different environment variables
C:\MAMP\conf\php7.1.7 and C:\MAMP\conf\php7.1.7\php.ini

这里也是我的new_connection. php文件和代码连接到MySQL
new_connection.php
这是我运行代码时得到的结果(显示两个If语句都失败了)
mysqli_init function does not exist, mysqli extension is not loaded
我找到了这个https://secure.php.net/manual/en/mysqli.installation.php
上面说... PHP 5.3.0及更高版本在Windows上,对于PHP 5.3及更高版本,默认情况下启用mysqli扩展并使用MySQL本机驱动程序。这意味着您无需担心配置对libmysql.dll的访问。
这让我很困惑,因为mysqli扩展确实有一个“;'在前面,当我打开php.ini文件时,

cetgtptt

cetgtptt1#

我在PHP 8.0.1版中使用了MAMP,phpMyAdmin-Page总是说它需要mysqli才能工作。我搜索了每一个文件夹,评论了很多,总是刷新服务器等,但没有任何工作.
.直到我在MAMP-settings中将PHP版本更改为8.1.0,并在php.ini中更改了extension_dir(路径应该类似于\MAMP\conf\php8.0.1)(“extension_dir”应该在第544行)。

h6my8fg2

h6my8fg22#

在我的情况下,解决方案是这样工作的。我的MAMP文件夹是C:\prg\MAMP
安装MAMP后启用了PHP 7.3.0,PhpMyAdmin不工作(同样的错误消息,mysqli扩展丢失),我切换到PHP 8.1.0,重新启动一切,但仍然没有成功。我检查了文件夹C:\prg\MAMP\conf\php8.1.0中的php.ini文件,扩展目录被正确定义为extension_dir = "C:\prg\MAMP\bin\php\php8.1.0\ext\",但我仍然得到错误
The mysqli extension is missing. Please check your PHP configuration.
每当我试图打开PhpMyAdmin。
所以我编辑了C:\prg\MAMP\bin\apache\conf目录下的httpd.conf文件,我看到了几行php7.3.0而不是php8.1.0,所以只需使用find&replace将其替换为您选择的PHP版本,并确保这些.dll文件存在。此外,PHPADISTRY Dir指令必须与LoadModule php7_module和php8apache2_4.dll文件的正确版本一起修改,而不是php7apache2_4.dll。下面是完整的新代码块:

LoadModule php8_module "C:\MAMP\bin\php\php8.1.0\php8apache2_4.dll"

<IfModule php8_module>
    PHPIniDir "C:\prg\MAMP\conf\php8.1.0\php.ini"
    AddType application/x-httpd-php .php .phtml
</IfModule>

在一个完整的MAMP重新启动后,它没有立即工作,我再次得到了mysqli错误,但一个简单的页面刷新终于帮助(浏览器缓存?).

ibrsph3r

ibrsph3r3#

我的案例解决方案:

  1. Windows 10
  2. php -v显示8.2x
  3. MAMP设置为8.0.1
  4. phpinfo()显示php 8.2x的版本
    从PATH环境变量中删除php。

相关问题