php - 使用 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));
}
解决方案
所以 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);
推荐阅读
- snmp - NET-SNMP SNMPTable 在一台计算机上工作,而不是在另一台计算机上工作-相同的文件
- spring-boot - 在 Spring Boot Web Flux 中映射 N 个单声道调用
- python - Heroku Django 部署 PyGObject 和 PyICU 无法造轮子
- c# - 如何为 DataTable.RowChanged 事件代码设置 DataContext
- docker - 运行命令 apt update (tensorflow/tensorflow:1.5.0-devel-gpu-py3) 时,Docker 容器卡在 0% [Working]
- node.js - 在 mac bigsur M1 上运行 npm install 时出错
- amazon-web-services - 如何阻止对 /actuator aws 的所有请求
- python - 尽管在 VSCode 中安装了 pywin32,但无法导入 win32com.client
- flutter - 在 Flutter 包中使用自定义图标字体显示问号而不是自定义图标
- c++ - 从字符串值构建一个带有十六进制字节的 char 数组