Ложное утверждение в PDO - PullRequest
       1

Ложное утверждение в PDO

1 голос
/ 18 декабря 2011

Я пытаюсь выполнить этот простой запрос:

try {
    $dsn = "mysql:host=localhost;dbname:mydb";
    $PDO = new PDO($dsn, 'root', '');
    $statement = $PDO->query("SELECT * FROM posts");
    var_dump($statement);  
} catch (PDOException $e) { exit($e->getMessage()); }

и такой вывод:

bool(false) 

Я действительно схожу с ума по этой ошибке.Я попытался выполнить запрос в моей базе данных.$PDO является объектом PDO, поэтому технически он связан с базой данных.Также кажется, что во всех профессиональных функциях ничего не происходит неправильно.Запустив скопированный и вставленный запрос из $PDO->query() в phpmyadmin, вы получите список из 2 записей.Я не знаю, что делать серьезно.Я начинаю дергать себя за волосы и биться головой об стену (это не метафора).Что я делаю не так?

Ответы [ 2 ]

5 голосов
/ 18 декабря 2011

У вас проблема с DSN.

dbname:mydb

должно быть

dbname=mydb

Разве вы не любите программировать?


В дополнение к вышеприведенному утверждению вы, тем не менее, должны включить исключения в ваших атрибутах PDO. Это делается путем добавления следующего оператора сразу после подключения:

$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Дополнительные баллы

  • Соглашение о присвоении имен - Это общепринятое соглашение о присвоении имен, что имена переменных начинаются с строчной буквы , и каждое последующее слово в верблюжьем кейсе или с использованием подчеркиваний .
    Примеры: $pdo, $databaseConnection $awesomeMultipleWordedVariable, $another_awesome_multiple_worded_variable.
1 голос
/ 18 декабря 2011

Вы должны включить исключения PDO:

$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...