Здравствуйте! Подскажите пожалуйста, я через PDO подключаюсь к MySQL. На денвере работает нормально. Там пользователь root без пароля. Выложил на хостинг. Выбрасывается эксепшн, не могу подключиться к БД SQLSTATE[28000] [1045] Access denied for user 'fr9526'@'localhost' (using password: YES) Параметры доступа вроде все правильно прописал, логин, пароль, localhost. Попробовал локально на Open-Server вместо денвера, тот же эксепшн, естесственно логин и пароль другие задал. Что-то я в MySQL не докрутил?
метод, отвечающий за подключения к БД Код (Text): private function dbConnect() { // подключаем конфигурацию базы данных require_once('m/db_config.php'); // подключаемся к БД try { $dbh = new PDO("mysql:dbname={$dbname}; host={$hostname}", $username, $password); if (empty($dbh)) throw new PDOException; return $dbh; } catch (PDOException $e) { die('Ошибка соединения с БД: ' . $e->getMessage()); } } в файле db_config.php переменные с параметрами доступа типа $hostname = 'localhost'; $password = 'password'; и т.д. попробовал выложить на бесплатный хостинг timeweb. Пароль и имя БД задал в админке, вроде нигде не ошибся в паролях. Странно что на денвере работает, а на таком же локальном сервере open-server также эксепшн выбрасывает, хотя тоже логин root без пароля, по крайней мере когда входишь phpAdmin это видно.
Попробовал без try - catch. Код (Text): $dbh = new PDO("mysql:dbname={$dbname}; host={$hostname}", $username, $password); Почему-то вместо $username, $password стоит NULL и вываливается ошибка о непойманном исключении. Почему-то не отрабатывает конструкция Код (Text): require_once('m/db_config.php'); внутри функции. Надо выносить в другое место?
сталобыть в db_config.php на хоcтинге у тебя не заданы эти переменные? если бы файл вообще не нашелся, то require вызвал бы фатальную ошибку, a.f.a.i.k. Добавлено спустя 3 минуты 9 секунд: а вообще безопаснее писать так: Код (PHP): require __DIR__.'/m/db_config.php'; иначе неоднозначно в какой именно папке лежит нужный файл. (timeweb уже перешел на PHP 5.3 насколько я знаю, значит __DIR__ уже определена)