我试图为PHP连接保留一个文件,而不是在每个页面上使用mysqli_connect。
我有一个config.ini文件,它有Db凭据,我在一个php文件Db_connect.php中调用这个文件。Db_connect_php的代码如下:
//stores hostname or the server name
$hostName;
//username for the database
$userName;
//password for the database
$password;
//database name
$dbName;
$ini = parse_ini_file('../../config/config.ini');
while(list($key,$value) = each($ini))
{
if($key == 'hostName')
{
$hostName = $value; //retrieving value of host name.
}
else if($key == 'userName')
{
$userName = $value; //retrieving database user name
}
else if($key == 'password')
{
$password = $value; //retrieving database password
}
else if($key == 'dbName')
{
$dbName = $value; //retrieving database name.
}
}
$connectobject1 = new mysqli($hostName, $userName, $password, $dbName);
if ($connectobject1->connect_errno)
{
echo "Connection Failed";
exit();
}
使用上面的代码,我可以创建到数据库的连接。现在,当我在index.php文件中包含db_connect.php时,我使用require_once"db_connect.php",但当在index.php中执行我的函数时,问题就开始了。这些函数无法访问连接字符串。我的index.php代码示例如下:
//Creating DB connection
require_once '../connect/db_connect.php';
//Checking DB connection
if(!$connectobject1)
{
//connection to DB failed
header('Location: /pages/error/error.php?id=0');
exit();
}
function checkuser($UserID, $connectobject1)
{
//function code
}
我读到使用global进行连接不是一个好的做法。
我如何处理我的连接?
使用这样的文件。。
config.php文件,该文件将具有服务器详细信息
<?php
// PHP Database Constants
// Database Constants
defined('DB_SERVER') ? null : define("DB_SERVER", "127.0.0.1");
defined('DB_PORT') ? null : define("DB_PORT", "8889");
defined('DB_USER') ? null : define("DB_USER", "popat234");
defined('DB_PASS') ? null : define("DB_PASS", "4JfQuuQnzU6yfPdm");
defined('DB_NAME') ? null : define("DB_NAME", "demo");
?>
database.php,它将具有连接设置
<?php
require_once ('config.php');
class MYSQLDatabase {
private $connection;
function __construct() {
$this->open_connection();
}
public function open_connection() {
$this->connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME, DB_PORT);
if(mysqli_connect_errno()) {
die("Database connection failed: " .
mysqli_connect_error() .
" (" . mysqli_connect_errno() . ")"
);
}
}