Проверить данные для БД без вывода ошибок (PDO)

Тема в разделе "Как сделать...", создана пользователем Q_BASIC, 29 дек 2015.

  1. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    385
    Симпатии:
    254
    Приветствую,

    Как проверить данные для доступа к бд, если PDO при неверных данных сразу ошибку выкидывает и не спасает try/catch?

    Код такой:
    Код:
    try{
        $db = new PDO("mysql:host=". $db_host .";dbname=". $db_name, $db_login, $db_passwd );
        $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT );
    }
    catch(Exception $e)
    {
        echo 'Данные не верные';
    }
    Скрипт выводит ошибку: Warning: PDO::__construct() [Перейти по ссылке], а после пишет что данные не верны. Как убрать вывод ошибки?

    Хотелось бы без выключения вывода ошибок во всём скрипте.

    PS: поставил @, что-то сразу не подумал.
     
    Последнее редактирование: 29 дек 2015
  2. javx

    javx

    Регистр.:
    28 авг 2015
    Сообщения:
    528
    Симпатии:
    246
    @ добавь в начале
     
    Q_BASIC нравится это.
  3. ykpon

    ykpon

    Регистр.:
    8 дек 2012
    Сообщения:
    249
    Симпатии:
    143
    Сомнительное решение. С таким же успехом можно просто выключить вывод всех ошибок.
     
  4. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    385
    Симпатии:
    254
    Код:
    try{
    $db = @new PDO("mysql:host=". $db_host .";dbname=". $db_name, $db_login, $db_passwd );
    $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT );
    }
    catch(Exception $e)
    {
    echo $e->getMessage();
    }
    Чем сомнительно? Так можно управлять выводом и не ломать верстку
     
  5. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.522
    Симпатии:
    1.376
    Q_BASIC нравится это.