Ошибка PDO без сообщения об ошибке - PullRequest
0 голосов
/ 09 февраля 2012

У меня есть следующий фрагмент кода:

<code>error_reporting(E_ALL);
$hostname = "localhost";
$username = "user";
$password = "password";
try {
    $db = new PDO("mysql:host=$hostname;dbname=DBNAME", $username, $password);
    echo "connected...<br/>\n";flush();
    $sql = "SELECT COLA, COLB FROM TABLEA LIMIT 10";
    echo "query:$sql--<br/>\n";flush();
    $stmt = $dbh->query($sql);
    echo "statement:<pre>";print_r($stmt);echo "
\ nfetching ...\ n "; flush (); $ result = $ stmt-> fetch (PDO :: FETCH_ASSOC); если ($ result === true) {echo" результат равен true\ n "; flush ();} иначе, если ($ result === false) {echo", результат равен false\ n "; flush ();} else {echo" что?\ n "; flush ();} foreach ($ result как $ key => $ val) {ключ echo": $ key - val: $ val--\ n "; flush ();} echo" done "; $ dbh = null;} catch (Exception $ e) {die ($ e-> getMessage ());}

Как вывидите, у меня есть куча отладочных эхо-операторов, но я вижу только:

connected...
query:SELECT COLA, COLB FROM TABLEA LIMIT 10

Я ожидал, что мой объект оператора будет отображаться вместе с моими результатами, я пропускаючто-то?

1 Ответ

3 голосов
/ 09 февраля 2012

После инициализации объекта PDO попробуйте установить режим ошибки выше.

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

Значение по умолчанию - PDO::ERRMODE_SILENT, которое не выдаст предупреждений / ошибок,С этой настройкой по умолчанию вы должны опросить errorInfo(), чтобы увидеть подробности ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...