Возвращение ассоциативного массива из подготовленного оператора - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь получить ассоциативный массив из запроса SQL, используя подготовленные операторы.Ничего, что я пытаюсь, работает.Я смог заставить его работать, прежде чем я реализовал подготовленные заявления.Я читаю много противоречивой информации, а также информацию о OO и PDO, которая, похоже, не работает с процедурным кодом.Я могу переключиться на один из этих стилей в будущем, но я не хочу переписывать весь этот сайт прямо сейчас.Любая помощь очень ценится.У меня есть item_template.php, который читает данные со строками ['name'], row ['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";
        }
    }
  }
}

1 Ответ

0 голосов
/ 28 декабря 2018

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

mysqli_set_charset($conn, "utf8");

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

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