За последние 24 часа нас посетили 22526 программистов и 1141 робот. Сейчас ищут 594 программиста ...

Я, походу, что-то забыл...

Тема в разделе "PHP для новичков", создана пользователем SamyRed, 16 ноя 2017.

  1. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Здравствуйте!
    Не могу понять почему с заведомо ложным данными скрипт говорит что всё ок и он подключился:
    PHP:
    1. try {
    2.   $db = new mysqli($host, $username, $password, $dbname);
    3.   die ('Ok');
    4. } catch (Exception $e ) {
    5.   die ('Error: '.$e->getMessage ());
    6. }
    Возвращает 'Oк', хотя данные для входа неверные
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Задекларируй
    Код (Text):
    1. mysqli_report(MYSQLI_REPORT_STRICT);
    в самом начале, чтобы mysqli выбрасывал исключения.
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    mysqli не кидает исключения по дефолту, это ж когда родилось всё.
    юзай PDO или заставь его:
    PHP:
    1. //вместо ворнингов в лог мускул будет кидать эксепшены
    2. mysqli_report(MYSQLI_REPORT_STRICT);
     
  4. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Ооо, спасибо, точно, работает всё. Хотя, по моему, на моём старом скрипте без этой строки работало. Может в php чего поменяли?
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Неа. Мускуль по дефолту никогда эксепшены не кидал. По дефолту ты делаешь коннекшон, а потом проверяешь, не false ли он.
     
  6. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Значит что-то перепутал.