首页 > 解决方案 > 使用 mysqli 但不是 mysql 访问被拒绝或空白页面

问题描述

我已经通过 StackOverflow 寻找答案,但到目前为止空手而归。我知道有些人遇到过类似的问题,但到目前为止,对这些问题的回应都没有奏效。

所以我在两个站点上工作,这两个站点都在同一个主机上,并设置了相同的 PHP 管理员(不同的帐户和域,站点不附属)。其中一个完美地使用 MySqli,没有问题,而另一个要么给出数据库选择失败,localhost 访问被拒绝,密码为“NO”,要么当我尝试用 MySqli 替换 MySql 时出现空白页。

不推荐使用的代码:

$host = "LOCALHOST";
$usr = "USER";
$pwd = "PASSWORD";
$dbname = "DATABASE";
$connection = @mysql_connect($host,$usr,$pwd);

if(!$connection){ 
    die("No connection.");  
}
mysql_select_db($dbname,$connection);

我正在尝试的 MySqli(与 MySqli 完美运行的站点相同):

$host = "LOCALHOST";
$usr = "USER";
$pwd = "PASSWORD";
$dbname = "DATABASE";

$connection = mysqli_connect($host,$usr,$pwd);
if (!$connection) {
    die("No connection.");
}

$db_select = mysqli_select_db($connection, $dbname);
if (!$db_select) {
    die("Database selection failed: " . mysqli_error($connection));
}

标签: phpmysqlmysqli

解决方案


所以 PHP 错误代码根本不起作用,它与本地主机或端口无关,所以我首先检查以确保 mysqli_connect 已打开。接下来,我运行了一个简单的测试,我在每个 mysqli 命令之前回显了一个随机单词。

echo 'Passed.';

global $c_mysqli;
$conn = new mysqli($host, $usr, $pwd, $dbname);

echo '<br>Passed global mysqli.';

我发现我的第二遍没有工作,然后继续执行错误消息。这时出现了一个错误。然而,我没有解决这个问题......然后我意识到我的一个文件,头文件,是肉和土豆,如果它失败了,那么其他一切都会失败。

果然,我的其中一行代码包含 mysql 连接,而不是 mysqli。长话短说,双重检查和三重检查以确保所有

$statement = mysql_query("STATEMENT");
$query = mysql_fetch_array($statement);

显示为

$statement = $conn->query("STATEMENT");
$query = mysqli_fetch_array($statement);

推荐阅读