我正在尝试设置新的本地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"?不同。 我在那里尝试过解决方案,但是到目前为止,没有一个答案有效。
答案 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服务器。