Мой класс базы данных отлично работает, и я называю это следующим образом: $db = new Database('user', 'pass', 'db', 'host');
. В верхней части моего сценария я определяю эту базу данных, но позже в скрипте я пытаюсь использовать соединение внутри функции, но похоже, что $db
не является глобальным, поэтому моя функция не может получить к нему доступ. У меня есть возможность создать новое соединение класса базы данных внутри каждой функции в моем скрипте, но я действительно хотел бы получить доступ к $db
в качестве глобальной точки доступа.php доступ к классу db изнутри функции
Вот код:
require_once('database_class.php');
$db = new Database('user', 'pass', 'db', 'host');
// I can reach the $db here and make the $db->PDO->'statement'();
function userExists($user) {
$bool = false;
// But in here I can't access $db...
$query = $db->PDO->query('SELECT * FROM login WHERE username = "$user"');
$result = $query->fetch();
if ($result) {
// User exists
$bool = true;
}
return $bool;
}
Исследование о Singleton шаблон. Он в основном используется для таких целей, как ваш. –
Не совсем «ответ», а то, что я в основном делаю, - это методы (функции) класса, которые просто открывают соединение, выполняют запрос, закрывают соединение, а затем обрабатывают и возвращают данные. Может быть, какой-то специалист, который говорит, что лучше оставить соединение открытым, но я никогда не замечал влияния на производительность, делая это :) – 2013-02-22 15:50:28