Добрый день сообщество!
Решил углубиться в недра php и mysql с книжкой "PHP и MySQL. От новичка до профессионала". Книга мне очень нравиться почти уже всю проработал, при работе с книгой использую XAMPP, но не дает мне покоя один нюанс.
Я подключаюсь к определенной таблице БД использую скрипт:
try
{
$pdo = new PDO('mysql:host = localhost; dbname = ijdb', 'ijdbuser', 'pass');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('SET NAMES "utf8"');
}
catch (PDOException $e)
{
$output = 'Невозможно подключиться к серверу баз данных! ' . $e -> getMessage();
include 'output.html.php';
exit();
}
Который подразумевает подключение к конкретной базе данных сервера, а в итоге я не могу написать запрос типа:
SELECT joke.id, joketext, name, email FROM joke INNER JOIN author on authorid = author.id
сервер кушает запрос только в том случае если я его модифицирую:
SELECT joke.id, joketext, name, email FROM ijdb.joke INNER JOIN ijdb.author on authorid = author.id
При первом варианте появляеться ошибка:
QLSTATE[3D000]: Invalid catalog name: 1046 No database selected
*Каким образом избавиться от избыточности написания!?
Ответ
При подключении к PDO надо строго соблюдать формат DSN. В частности, не добавлять отсебятину в виде пробелов, кавычек и прочих украшательств.
$pdo = new PDO('mysql:host=localhost;dbname=ijdb', 'ijdbuser', 'pass');
Комментариев нет:
Отправить комментарий