我的文件 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'(使用密码:是)
任何人都可以帮我解决一下吗? 谢谢
答案 0 :(得分:-1)
编辑回答。错误
用户拒绝访问:'XXXX @ localhost'(使用密码:是)
表示为连接提供了错误的凭据。检查凭据。无论文件夹问题与此错误无关。
我讨厌猜测,但这不是一个真正的问题。
可能有其他db_config.php包含错误的凭据。
无论哪种方式,op都不应该像用户那样无助地观看错误,但做某事。挖掘问题根源并不困难:回显$dbinfo
,检查realpath()
的相对路径,将返回值与所需值进行比较,转为完整使用error_reporting(E_ALL);
你写的程序不是你不知道的黑盒子。它总是有中间结果。如果整个程序出错,您有责任验证它们是否正确。