php - 为什么 PHP 卡在 mysqli_connect 上而没有错误代码?
问题描述
在线上
$conn = mysqli_connect($dbServername, $dbUsername, $dbPassword, $dbName);
PHP 停止,没有错误。
这是一个新的 Linux 服务器,运行 PHP 7.0、Apache 2 和 MariaDB 10。我不知道为什么我要运行 MariaDB,即使我安装了包“mysql-server”。我读到它们是兼容的,所以我认为应该没问题。我尝试在另一台机器(Raspberry Pi 3)上设置我的服务器,结果相同。
<?php
$dbServername = "localhost";
echo "passed dbServername <br>";
$dbUsername = "root";
echo "passed dbUsername <br>";
$dbPassword = "";
echo "passed dbPassword <br>";
$dbName = "cities";
echo "passed dbName <br>";
$conn = mysqli_connect($dbServername, $dbUsername, $dbPassword, $dbName);
echo "passed conn <br>";
if (!$conn) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
} else {
echo "success! <br>";
}
?>
这是我的网页输出的内容:
passed dbServername
passed dbUsername
passed dbPassword
passed dbName
绝对没有别的。无论它是否连接,我都希望有更多的输出。
编辑:
有趣的是,如果我插入这样的错误报告:
$dbServername = "localhost";
echo "passed dbServername <br>";
$dbUsername = "root";
echo "passed dbUsername <br>";
mysqli_report(MYSQLI_REPORT_ALL);
$dbPassword = "";
echo "passed dbPassword <br>";
$dbName = "cities";
echo "passed dbName <br>";
我得到输出:
passed dbServername
passed dbUsername
所以似乎通过添加任何与 MySqli 相关的东西都会冻结 PHP。
如果没有错误报告,当我查看源代码时,它会显示:
passed dbServername <br>passed dbUsername <br>passed dbPassword <br>passed dbName <br>
解决方案
我知道这是 7 个月大,但我有同样的问题。
我的解决方案很简单:我还没有安装 php-mysql!
在 Ubuntu 中运行
apt install php-mysql
推荐阅读
- c# - 在 Microsoft Unity DI 中注册所有类
- c# - 如何避免对订阅方法的责任
- angular - 无法读取未定义 Ionic 3 的属性“推送”
- c# - C# 循环 x 毫秒
- android - Firebase 数据库通知发送到一台设备 Android Studio
- java - 是否有运行 docker 应用程序的 maven 命令?
- reactjs - ReactJS 错误没有从 Render 类 Render() 中的 Const 返回
- arrays - 不确定如何访问 firebase 数据库中的每个值
- javascript - 为什么看不到宽 50 像素和高 25 像素的图表
- c - Handle logout and sorting in an array of socket threads