php - 无法连接到 Apache 服务器上的 MySQL
问题描述
我正在尝试设置一个新的本地 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 中抛出
MySQL设置为3306端口,httpd.conf中mysqli.default_port设置为3306。
这是 Windows 10。MySQL 版本是 8.0.2。如何让 PHP 使用 mysql 库/与 MySQL 对话?
编辑:与如何解决“致命错误:找不到类'MySQLi'”不同?. 我已经尝试了那里的解决方案,但到目前为止没有一个答案有效。
解决方案
首先,确保您正在编辑“正确”的 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 服务器。
推荐阅读
- api - 限制过快提交的交易
- laravel - 使用电子表格导出具有条件格式的现有模板
- python - Raspberry Pi 4 上的鼠标仿真不起作用
- sql - 将所有外键删除到特定表
- python - 使用 python 和 django 读取输入字段数组
- javascript - 试图了解 e.PreventDefault 和 e.StopPropogation 行为
- azure - 以编程方式需要使用 azure ADB2C 中的手机号码从用户联系信息中更新 MFA 的强身份验证号码
- typescript - TypeScript:通用类实现的包装器
- html - 让一个元素占据几列
- java - 添加一些依赖项后,Android Studio 未显示“立即同步”选项