Я работаю над проектом для школы (Крайний срок в июне, много времени дано ^^).
На данный момент в conf.php есть база данных (каждый другой .php включает этот, он имеет переменную, которая ссылается на объект mysqli), и я обращаюсь к базе данных в каждом методе классов через «global $ db_conn; ». Проблема в том, что если я открываю только class.php, он не включает conf.php, и он вызывает ошибки. Поэтому я подумал о добавлении частной экземпляра / статической переменной для объекта mysqli-Object с КАЖДОМ. Это не работает (неожиданно T_NEW):
class foo{ private static $db_conn = new mysqli("", "", "", ""); }
Как вы работаете с db-соединениями? Как бы вы справились с этой конкретной проблемой?
Спасибо заранее ^^
Если вы подключите свой db к классу Singleton и у вас есть __autoload()
, вы можете просто иметь свойство dbconnection в каждом из ваших классов, которое задано во время построения.
например
class DBConnection{ private static $instance; private function __construct(){ //make your db connnection } public static function get_connection(){ if(empty self::$instance) self::$instance = new DBConnection; return self::$instance; } } class Foo { private $db; function __construct(){ $this->db=DBConnection::get_connection(); } }
вы можете использовать include_once
файл conf.php как в ваших других файлах, так и в файле класса. таким образом у вас всегда есть содержимое (и ссылка db).