【问题标题】:Why is PHP stuck on mysqli_connect with no error code?为什么 PHP 卡在 mysqli_connect 上而没有错误代码?
【发布时间】:2019-03-23 06:26:08
【问题描述】:

上线

$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>

【问题讨论】:

  • 您是否启用了错误报告 - stackoverflow.com/questions/22662488/…
  • 你不可能一无所有,if else 之一会触发并输出一些东西。
  • 右击页面查看源码,是不是全部代码都显示出来了?

标签: php linux mysqli apache2 mariadb


【解决方案1】:

我知道这是 7 个月大,但我遇到了同样的问题。

我的解决方案很简单: 我还没有安装php-mysql!

在 Ubuntu 中运行

apt install php-mysql

【讨论】:

    猜你喜欢
    • 2018-05-30
    • 1970-01-01
    • 2016-11-29
    • 2012-08-04
    • 2016-05-29
    • 1970-01-01
    • 2016-02-09
    • 2014-03-09
    • 1970-01-01
    相关资源
    最近更新 更多