За последние 24 часа нас посетили 23094 программиста и 1225 роботов. Сейчас ищут 760 программистов ...

fetch() возвращает true

Тема в разделе "PHP и базы данных", создана пользователем mimimi222, 18 июл 2021.

Метки:
  1. mimimi222

    mimimi222 Новичок

    С нами с:
    7 авг 2020
    Сообщения:
    4
    Симпатии:
    0
    Здраствуйте. Решил я с процедурного стиля перейти в ООП. Столкнулся с проблемой
    PHP:
    1. $check_user = $sql_obj -> prepare("SELECT * FROM table WHERE login=? OR email=?");
    2.         $check_user->bind_param("ss", $_POST['username'], $_POST['email']);
    3.         $check_user->execute();
    4.        
    5.         $resche = $check_user->fetch(); var_dump($resche);
    в итоге, мне возвращается значение true и я не могу вывести элементы ассоциативного массива. Я уже пробовал через метод get_result() , но ошибка возникает , ведь fetch_array() получает булевое значение false от get_result() (пробовал получить код ошибки $check_user->get_result()->errno, но в итоге получаю 0, что соответсвует отсутствию ошибки)
     
  2. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    Один из трех ожидаемых вариантов: true, false или null.
    Всё так и должно быть: PHP: mysqli_stmt::fetch - Manual
    Надо "забиндить" переменные для сохранения результата и... в общем, в примерах там всё разжёвано.
     
    mimimi222 нравится это.
  3. mimimi222

    mimimi222 Новичок

    С нами с:
    7 авг 2020
    Сообщения:
    4
    Симпатии:
    0
    Спасибо за ответ. Не знаете что может быть в случае с get_result() ?
     
  4. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    Сравните последовательность своих действий с теми, что приведены в примерах. PHP: mysqli_stmt::get_result - Manual
     
  5. mimimi222

    mimimi222 Новичок

    С нами с:
    7 авг 2020
    Сообщения:
    4
    Симпатии:
    0
    Я обнаружил в чём проблема. Я вызывал метод get_result() несколько раз. И поэтому он в первом вызове вернул результат, а во втором уже нет. Поэтому я создал отдельную переменую для этого метода. Спасибо)