All that we see or seem, is but a dream within a dream.. (c) E. A. Poe
[ok]
Не получается соединиться с БД через PDO. Через эксепшн выводит ошибку: "SQLSTATE[28000] [1045] Access denied for user 'xxxxxx'@'xxx.xxx.xxx.xxx' (using password: YES)".
Через стандартное mysql_connect() все нормально.
Хостинг - masterhost.ru
PDO поставлен и мускульный драйвер запущен.
Сменить хостинг не вариант.
UPD:
Не работает:
$dsn = 'mysql:dbname=имябд;host=имяхоста';
$user = 'логин';
$password = 'пароль';
$dbh = new PDO($dsn,$user,$password);
Работает: $dbh = new PDO('mysql:dbname=имябд;host=имяхоста','логин', 'пароль');
Не получается соединиться с БД через PDO. Через эксепшн выводит ошибку: "SQLSTATE[28000] [1045] Access denied for user 'xxxxxx'@'xxx.xxx.xxx.xxx' (using password: YES)".
Через стандартное mysql_connect() все нормально.
Хостинг - masterhost.ru
PDO поставлен и мускульный драйвер запущен.
Сменить хостинг не вариант.
UPD:
Не работает:
$dsn = 'mysql:dbname=имябд;host=имяхоста';
$user = 'логин';
$password = 'пароль';
$dbh = new PDO($dsn,$user,$password);
Работает: $dbh = new PDO('mysql:dbname=имябд;host=имяхоста','логин', 'пароль');
интуитивно мне кажется, что хост "xxx.xxx.xxx.xxx" в случае с mysql_connect() указывается другой
что-то вроде $db = new PDO("mysql:host=$host;dbname=$database", $username, $password);
Все данные одинаковы.
Сейчас всё работает через стандартный mysql_connect. Я хочу вывести через PDO оболочку, но столкнулся с проблемой выше.
Не понимаю, зачем примеры кода, но вот:
Не работает: $dbh = new PDO('mysql:dbname=имябд;host=имяхоста','логин', 'пароль');
Работает: $db = mysql_connect('имяхоста','логин','пароль');
Уточню предыдущий пост:
Не работает:
$dsn = 'mysql:dbname=имябд;host=имяхоста';
$user = 'логин';
$password = 'пароль';
$dbh = new PDO($dsn,$user,$password);
Работает: $dbh = new PDO('mysql:dbname=имябд;host=имяхоста','логин', 'пароль');
Раньше на всех хостингах работал 1ый вариант. В чём может быть особенность мастерхоста?
-Inori-, попробуй воспроизвести проблему
Опечатки быть не может, разве что в ctrl+c/v внедрили такую функцию.
Так лучше?
Короче, проблемы в общем-то и нет - к PDO я подключился так или иначе, хоть и не так как хотелось бы/привык.
В общем решение - либо держать конфиг и класс в одной папке, либо вообще конфиг внутри файла класса.
Если второе, то стёрто, а переписывать как-то нет желания
было что-то вроде:
require_once '../lib/init.php';
init.php:
require_once '../dbconf.php';
require_once 'classes/db.php';
в дб код выше с использованием переменных из dbconf
Еще теперь уже точно не помню, но возможно в db.php был еще один вызов dbconf для подстраховки, мб он вызывал проблему.
Проблема была в опечатке в названии переменной. Час убил на перепроверку всех возможных данных соединения с бд, не замечая '$passwrd' вместо '$password'...