Получение ассоциативного массива из подготовленного оператора

Я пытаюсь получить ассоциативный массив из SQL-запроса, используя подготовленные операторы. Ничего из того, что я пробую, не работает. Мне удалось заставить это работать до того, как я реализовал подготовленные операторы. Я читаю много противоречивой информации, а также информацию OO и PDO, которая, похоже, не работает с процедурным кодом. Я могу переключиться на один из этих стилей в будущем, но я не хочу прямо сейчас переписывать весь этот веб-сайт. Любая помощь приветствуется. У меня есть item_template.php, который читает данные с помощью строк ['name'], rows ['type'] и т.д. Он работал mysqli_fetch_assoc ... Я просто не могу заставить fetch_assoc работать с подготовленным оператором.

  if ($searchname == NULL) {
    echo 'You must enter something to search for!';
    }else{
     $sql = "SELECT * FROM itemdb WHERE name LIKE ?";
     $stmt = mysqli_stmt_init($conn);
    if (!mysqli_stmt_prepare($stmt, $sql)) {
        header("Location: viewresults.php?error=sqlerror2");

        exit();
    }
    else{
      $searchname = "%".$searchname."%";
      mysqli_stmt_bind_param($stmt,"s", $searchname);
      mysqli_stmt_execute($stmt);
      mysqli_stmt_store_result($stmt);

      $resultcheck = mysqli_stmt_num_rows($stmt);
      echo $resultcheck;
        if ($resultcheck == 0) {
          echo 'No results found! Try again! ' . $resultcheck;
          exit();
        }else{
          $result = mysqli_stmt_get_result($stmt);
          echo $result;

          while ($row = mysqli_fetch_assoc($stmt)) {

          include("item_template.php");
          echo "SUCCESS";
        }
    }
  }
}

Что такое $stmt? Какой параметр ожидает mysqli_fetch_assoc? (Подсказка, это mysqli_result). var_dump - ваш друг.

ficuscr 28.12.2018 06:59

Я попытался использовать mysqli_fetch_assoc с mysqli_stmt_store_result, но безуспешно. Я думал, что это будет mysqli_result. У меня не было проблем, когда я не использовал заранее подготовленные операторы ... Вот что меня вывело из ума. Я не знаю, что делаю, и думаю, что я в чем-то запутался, лол. Я пытался понять это вечно. Большинство примеров и помощи, которые я нахожу, - это OO и PDO, которые имеют достаточно различий, чтобы не помогать.

Bassex 28.12.2018 07:05

замените while ($ row = mysqli_fetch_assoc ($ stmt)) на WHILE (null! == ($ row = mysqli_fetch_assoc ($ stmt)))

Umar Abdullah 28.12.2018 07:13

По-прежнему не работает. Это почти то же самое, что у меня, только в другом формате?

Bassex 28.12.2018 07:19

Вы пытаетесь получить данные из оператора, а не результат - mysqli_fetch_assoc($stmt) должен быть mysqli_fetch_assoc($result)

Nigel Ren 28.12.2018 08:14
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
65
1

Ответы 1

Какую кодировку вы используете в своей БД? Я использую utf8_general_ci и кириллицу. Так

mysqli_set_charset($conn, "utf8");

сразу после того, как мне помогает $conn=mysqli_connect();

Другие вопросы по теме