Попытка понять, почему вы используете этот тип настройки базы данных

Недавно я столкнулся с созданной базой данных.

<?php ini_set( "display_errors", true ); date_default_timezone_set( "Australia/Sydney" ); // http://www.php.net/manual/en/timezones.php define( "DB_DSN", "mysql:host=localhost;dbname=cms" ); define( "DB_USERNAME", "root" ); define( "DB_PASSWORD", "" ); define( "CLASS_PATH", "classes" ); define( "TEMPLATE_PATH", "templates" ); define( "HOMEPAGE_NUM_ARTICLES", 5 ); define( "ADMIN_USERNAME", "admin" ); define( "ADMIN_PASSWORD", "mypass" ); require( CLASS_PATH . "/Article.php" ); function handleException( $exception ) { echo "Sorry, a problem occurred. Please try later."; error_log( $exception->getMessage() ); } set_exception_handler( 'handleException' ); ?> 

Я понимаю, как он работает, но я никогда не видел, чтобы соединение было настроено таким образом, есть ли причина, по которой вы хотели бы настроить свою базу данных таким образом?

Это очень распространенный сценарий. Я создал класс MySQL, который я использую в своих проектах PHP, и могу вызвать его из любого места, чтобы подключиться к базе данных. Вы можете взять его здесь:

http://pastebin.com/2FrPHVLR

Для любых страниц, которые необходимо подключиться к моей базе данных, я загружаю глобальный файл конфигурации, требующий этого класса, и добавляю мои учетные данные, например

 $db_hostspec = 'localhost'; $db_database = 'mydb'; $db_username = 'root'; $db_password = 'MySekretPassw0rd'; $db_port = '3306'; 

Затем я могу подключиться к базе данных с помощью

 $db = new MySQL($db_hostspec, $db_username, $db_password, $db_database); 

И я могу звонить в базу данных с помощью:

 $products = $db->execute("SELECT * FROM Products");