无法连接到Apache服务器上的MySQL

时间:2020-08-14 04:18:42

标签: php mysql apache mysqli

我正在尝试设置新的本地Web服务器。 Apache已经在运行,并且php正在运行。安装了Mysql。我可以通过MySQL工作台运行mysql。但是,我无法从php文档连接到MySQL。

首先,我看过的指南说要在php.ini中添加扩展名。我去了php.ini-development并取消了注释:

extension=mysqli

重新启动服务器后,此操作无济于事。我还尝试了诸如extension = php_mysqli和php_mysqli.dll之类的变体。

事实上,我的计算机上确实有mysql dll。它在:

C:\ php \ ext \ php_mysqli.dll

我的计算机说,自从我下载该dll以来,尚未对其进行任何访问或修改,因此Apache完全没有涉及它。

代码如下:

<?
$servername = "localhost";

$username = "root";

$password = "*************";

$conn = new mysqli($servername, $username, $password);

if ($conn->connect_error) {

  die("Connection failed: " . $conn->connect_error);

}

echo "Connected successfully";

?> 

我收到此错误:

致命错误:未捕获错误:在C:\ Websites \ x.php:14中找不到类'mysqli'堆栈跟踪:#0 {main}在第14行的C:\ Websites \ x.php中抛出了

在httpd.conf中,MySQL设置为端口3306,mysqli.default_port设置为3306。

这是Windows10。MySQL版本是8.0.2。如何使PHP使用mysql库/与MySQL对话?

编辑: 与How to solve "Fatal error: Class 'MySQLi' not found"?不同。 我在那里尝试过解决方案,但是到目前为止,没有一个答案有效。

1 个答案:

答案 0 :(得分:1)

首先,请确保您正在编辑“正确的” php.ini文件。您的系统上可能有几个php.ini文件,因此请执行以下PHP代码,以查看在数据库连接脚本的上下文中加载了哪个php.ini:

var_dump(php_ini_loaded_file());

然后,尝试在php.ini中指定MySQLi DLL文件的绝对路径,如下所示:

extension=C:\php\ext\php_mysqli.dll

注意:不要忘记在修改php.ini之后重新启动Apache服务器。