PHP函数和数据库连接


PHP Function and DB connection

我试图为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() . ")"
      );
    }
  }