我使用配置文件中的变量在我的php文件上建立sql连接。连接在这些文件中工作正常,但为了使网站更有条理我决定有一个文件用于连接。我从互联网上获得了代码,连接无效。 给我这个错误:
'错误:连接失败:用户访问被拒绝' @' server.com' (使用密码:否)'
配置文件中的用户信息不同,密码已设置。
这是详细信息: 我的网站喜欢这个结构:
root ----> 1)config.ini 2)public_html folder
public_html ----> website pages including 1)db_functions.php and 2)admin folder
admin ---->login.php and loginCode.php.
config.ini中的
[database]
username = someone
password = something
dbname = something
db_functions.php文件中的
<?php
/**
* Database functions for a MySQL with PHP tutorial
*
* @copyright Eran Galperin
* @license MIT License
* @see http://www.binpress.com/tutorial/using-php-with-mysql-the-right-way/17
*/
/**
* Connect to the database
*
* @return bool false on failure / mysqli MySQLi object instance on success
*/
function db_connect() {
// Define connection as a static variable, to avoid connecting more than once
static $connection;
// Try and connect to the database, if a connection has not been established yet
if(!isset($connection)) {
// Load configuration as an array. Use the actual location of your configuration file
$config = parse_ini_file('../config.ini');
$connection = mysqli_connect('server',$config['username'],$config['password'],$config['dbname']);
}
// If connection was not successful, handle the error
if($connection === false) {
// Handle error - notify administrator, log to a file, show an error screen, etc.
return mysqli_connect_error();
}
return $connection;
}
?>
在loginCode.php中
<?php
require_once('../db_functions.php');
$connection = db_connect();
//if connection fails, stop script execution
if (mysqli_connect_errno()) {
$Message = "Error: " . $sql . "Connect failed: ". mysqli_connect_error();
echo $Message;
}
else
echo 'no error';
?>
那些鳕鱼有错误: 错误:连接失败:用户访问被拒绝&#39; @&#39; server.com&#39; (使用密码:否)
但是,当我将相同的函数从db_functions.php文件复制到loginCode.php文件并将此行$config = parse_ini_file('../config.ini');
更改为$config = parse_ini_file('../../config.ini');
时,它完美地工作并且连接成功。
当我用db_functions.php替换实际数据库用户信息中的连接变量,从loginCode.php调用该函数时,它也可以正常工作。
我认为db_functions.php上有一个问题是谁无法评估配置文件中的信息,但为什么其他文件可以访问它?
更新:我将loginCode.php文件移动到public_html文件夹连接工作。我将db_functions.php文件移动到了它也可以使用的admin文件夹。
答案 0 :(得分:0)
工作。