I'm trying to keep one file for PHP connection instead of using mysqli_connect on every page.
I have a config.ini file which has the Db credentials, this file i call in a php file db_connect.php The code of db_connect.php is below:
//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();
}
using the above code, i'm able to create a connection to the database. Now when i include db_connect.php in my index.php file, i use require_once 'db_connect.php' however the problem starts when in index.php my functions execute. These functions are not able to access the connection string. a sample of my index.php code is below:
//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
}
I've read that it is not a good practice to use global for connections.
How can I proceed with my connections?