Глобальная переменная - подключение к базе данных?

Я пытаюсь подключиться к базе данных (MySQLi) только один раз, но у меня возникают проблемы с этим.

Как мне установить соединение global для всего скрипта? Есть несколько файлов (index.php, /classes/config.class.php, /classes/admin.class.php и т. д.).

Я пробовал следующее:

In: config.class.php

public static $config = array();
public static $sql;

function __construct() {
    // database
    db::$config['host'] = 'localhost';
    db::$config['user'] = '_';
    db::$config['pass'] = '_';
    db::$config['db'] = '_';

    // connect
    db::$sql = new mysqli(db::$config['host'], db::$config['user'], db::$config['pass'], db::$config['db']);
}

Опять же, в config.class.php

public function contectToDatabase($sql){
    $sql = new mysqli(db::$config['host'], db::$config['user'], db::$config['pass'], db::$config['db']);
    $this->sql = $sql;
}

я использую класс со следующим кодом: $ config = new db ();

Я действительно озадачен, как мне это сделать. Может ли кто-нибудь помочь?

--- Изменить --- Это мой новый файл config.class.php:

public static $config = array();
public static $sql;

private static $db;
private $connection;

public function __construct() {
    // database
    db::$config['host'] = '_';
    db::$config['user'] = '_';
    db::$config['pass'] = '_';
    db::$config['db'] = '_';
    // connect
    $this->connection = new mysqli(db::$config['host'], db::$config['user'], db::$config['pass'], db::$config['db']);
}
function __destruct() {
    $this->connection->close();
}
public static function getConnection() {
    if($db == null){
        $db = new db();
    }
    return $db->connection;
}

И вот как я его загружаю:

require_once("classes/config.class.php");
$config = new db();
$sql = db::getConnection();

Однако при запуске real_escape_string приводит к следующим ошибкам:

Warning: mysqli::real_escape_string() [mysqli.real-escape-string]: Couldn't fetch mysqli in /home/calico/_/_.com/_/index.php on line 20

Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in /home/calico/_/_.com/_/index.php on line 28
8
задан Peter 17 October 2011 в 12:57
поделиться