Использование констант define() для подключения к БД через pdo

Рейтинг: 0Ответов: 1Опубликовано: 28.03.2015

Здравствуйте! Уместно ли подключение к БД с использованием констант? Константы определены, но в коде:

$pdo = new PDO("mysql:host=HOST; dbname=DB;charset=utf8", "USER", "PASS");

выдаёт ошибку

ERROR: SQLSTATE[HY000] [2005] Unknown MySQL server host 'HOST' (1)

Ответы

▲ 1Принят

php не умеет интерполировать строки константами. Они просто физически не отличаются от слов, поэтому непонятно было бы, что делать ос словами, чье имя совпадает с именем константы.

 $dsn = sprintf('mysql:host=%s;dbname=%s;charset=utf8', HOST, DB);
 $pdo = new PDO($dsn, USER, PASS);

Теперь у меня один вопрос: зачем вы вообще это в константы сохраняете?