mysqli 连接错误(在根文件夹中有效,在子文件夹中无效)

问题描述 投票:0回答:2

我有一个文件my_api.php,其中包含以下内容:

require_once('./api/api_helper.php');
require_once('./includes/db_config.php');
$db = mysqli_connect($dbinfo['host'], $dbinfo['user'], $dbinfo['pass'], $dbinfo['dbname']);
if(mysqli_connect_errno()){
    echo 'MySQLi Error: ' . mysqli_connect_error(); exit;
}

当我将其放入根目录时,一切正常。 现在我放入一个名为 api 的子目录并将文件的内容更改为:

require_once('./api_helper.php');
require_once('../includes/db_config.php');
$db = mysqli_connect($dbinfo['host'], $dbinfo['user'], $dbinfo['pass'], $dbinfo['dbname']);
if(mysqli_connect_errno()){
    echo 'MySQLi Error: ' . mysqli_connect_error(); exit;
}

然后我收到以下错误:

警告:mysqli_connect() [function.mysqli-connect]: (HY000/1045): 用户访问被拒绝:“XXXX@localhost”(使用密码:YES) /homepages/XXXX/api/myapi.php 第 13 行 MySQLi 错误:访问被拒绝 对于用户:'XXXX@localhost'(使用密码:YES)

有人可以帮我解决这个问题吗? 谢谢你

php path mysqli include
2个回答
0
投票

我遇到了完全相同的问题。 另外,当我在主目录中运行 phpinfo.php 时,mysqli 会出现,但当我从子文件夹中运行 phpinfo.php 时不会出现。 我查了一下,他们都使用相同的 php.ini 文件


-1
投票

编辑答案。错误

用户访问被拒绝:“XXXX@localhost”(使用密码:YES)

表示为连接提供了错误的凭据。检查凭据。无论文件夹问题与此错误无关。

我不想猜测,但这不是一个真正的问题。

可能还有其他 db_config.php 包含在错误的凭据中。

无论哪种方式,操作都不应该像用户那样无助地观看错误,而是做一些事情。挖掘问题根源并不难:回显

$dbinfo
,用
realpath()
检查相对路径,将返回值与所需值进行比较,用error_reporting(E_ALL);
转动
full

错误报告

你写的程序不是你不知道的黑匣子。它总是有中间结果。您有责任验证它们是否正确,以防整个程序出错。

© www.soinside.com 2019 - 2024. All rights reserved.