MySQL запрос возвращает true, но fetch_assoc не работает - PullRequest
0 голосов
/ 20 апреля 2019

Я использую PHP и MySQL (mysqli) в XAMPP, у меня выпадающий список, и пользователь должен выбрать один, затем используется запрос, чтобы найти идентификатор выбранного значения, но он не работает.Я уже сделал это еще три раза, и это сработало, но это не так.

    $sql = "SELECT foo_id FROM foo_table
WHERE foo_name = 'bar';";
    $res = $conn->query($sql);
    for ($i = 0; $i < 500; $i++) {
        $row = $res->fetch_assoc();
        echo $row[row["foo_id"]]
    }

Проблема в том, что fetch_assoc ничего не возвращает, даже если переменная $ res возвращает true.

Edit: я забыл упомянуть, что выполнение запроса в phpmyadmin возвращает результаты нормально.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

Я нашел решение, проблема в том, что реальная база данных использовала греческие символы в записях, и база данных должна была быть установлена ​​в utf8-bin, после этого она работала.

0 голосов
/ 20 апреля 2019

Я не уверен, почему вы повторяете более 500 раз? это не имеет смысла.

Лучшая практика для извлечения данных из БД -

$sql  = "SELECT foo_id FROM foo_table
          WHERE foo_name = 'bar'";
$res = $conn->query($sql);
if ($res->num_rows > 0) {
   // output data of each row
   while($row = $res->fetch_assoc()) {
      echo $row["foo_id"];
   }
 }

OR

 $foo_id = ''
 if ($res->num_rows > 0) {
   // output data of each row
   while($row = $res->fetch_assoc()) {
      $foo_id = $row["foo_id"];
   }
 }
 for ($i = 0; $i < 500; $i++) {
    echo $foo_id;
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...