Во-первых, если вы хотите в полной мере воспользоваться классом mysqli, вам следует расширить его и просто переопределить, где это необходимо.
class Database extends mysqli
{
public function __construct($host = null,$username= null,$password = null,$database = "",$port = null, $socket = null)
{
$host = $host !== null ? $host : ini_get("mysqli.default_host");
$username = $username !== null ? $username : ini_get("mysqli.default_user");
$password = $password !== null ? $password : ini_get("mysqli.default_pw");
$port = $port !== null ? $port : ini_get("mysqli.default_port");
$socket = $socket !== null ? $socket : ini_get("mysqli.default_socket");
/*
Perform any custom actions here!
*/
parent::__construct($host,$username,$password,$database,$port,$socket);
}
public function fetch_all($query) /*Overridden*/
{
if(false !== ($result = parent::query($query))) //run directly in mysqli
{
return $result->fetch_all(MYSQLI_ASSOC);
}
return false;
}
public function get_error()
{
if($this->errno || $this->error)
{
return sprintf("Error (%d): %s",$this->errno,$this->error);
}
}
}
Это позволит mysqli обрабатывать ошибки и позволять вам легко получать к ним доступ. Нет смысла создавать класс, который будет просто имитировать класс, а лучше расширять сам класс.
Во-вторых, это плохая практика разбрасывать ваш код, это не должно влиять на то, как php интерпретирует код, но может запутать дальнейших разработчиков и вызвать проблемы в долгосрочной перспективе, когда дело доходит до совместной разработки.
Простой пример:
$Database = new Database(null,"root","pass","database");
$Results = $Database->fetch_all("SELECT * from tabe_that_dont_exists");
if($Results === false)
{
echo $Database->get_error();
}