Оглавление

Класс для подключения к базе данных

Поскольку в нашем приложении в доступе к базе данных будут нуждаться несколько классов, имеет смысл создать объект, предназначенный для открытия и хранения объекта базы данных. Назовем этот объект  DB_Connect и поместим его в файл class.db_connect.inc.php, который сохраним в папке class (/sys/class/class.db_connect.inc.php).

 

У этого класса будет одно свойство и один метод, оба защищенные. Назначим свойству имя  $db и используем его для хранения объекта базы данных. Упомянутый метод — конструктор. Этот метод будет принимать в качестве необязательного параметра объект базы данных, сохраняемый далее в переменной $db, а если этот параметр ему не передается — создавать новый объект PDO (PHP Data Object).
Поместите в файл class.db_connect.inc.php приведенный ниже код.

 

<?php 
 
/** 
 * Осуществляет подключение к базе данных (доступ к БД, проверка и т.п.)) 
 * 
 * Версия PHP 5 
 * 
 * ЛИЦЕНЗИЯ: на этот файл распространяется лицензия MIT,
 * доступная по адресу:
 * http://www.opensource.org/licenses/mit-license.html 
 * 
 * @author     Jason Lengstorf <jason.lengstorf@ennuidesign.com> 
 * @copyright  2009 Ennui Design 
 * @license    http://www.opensource.org/licenses/mit-license.html 
 */ 
class DB_Connect { 
 
    /** 
     * Переменная для хранения объекта базы данных
     * 
     * @var object: объект базы данных 
     */ 
    protected $db; 
 
    /** 
     * Проверить наличие объекта БД, а в случае его отсутствия создать новый 
     *  
     * @param object $dbo: объект базы данных 
     */ 
    protected function __construct($dbo=NULL) 
    { 
        if ( is_object($dbo) ) 
        { 
            $this->db = $dbo; 
        } 
        else 
        { 
            // Константы определены в файле /sys/config/db-cred.inc.php 
            $dsn = "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME; 
            try 
            { 
                $this->db = new PDO($dsn, DB_USER, DB_PASS); 
            } 
            catch ( Exception $e ) 
            { 
                // Если не удается установить соединение с БД,
				// вывести сообщение об ошибке 
                die ( $e->getMessage() ); 
            } 
        } 
    } 
 
} 
 
?> 

 

Примечание. В этом коде используются константы, которые на данный момент еще не определены. Файлы с определениями указанных констант будут созданы в следующем разделе.
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити