mysqli查询返回true,但fetch_assoc不起作用

时间:2019-04-20 09:14:51

标签: php mysql mysqli

我在XAMPP中使用PHP和MySQL(mysqli),我有一个下拉菜单,用户必须选择一个,然后使用查询查找已选择的值的ID,但它不起作用。我已经做过三遍了,而且可以用,但是没有用。

    $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"]]
    }

问题在于即使$ res变量返回true,fetch_assoc也不返回任何内容。

编辑:我忘了提到在phpmyadmin中运行查询可以正常返回结果。

2 个答案:

答案 0 :(得分:0)

我不确定您为什么要迭代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;
 }

答案 1 :(得分:0)

我找到了解决方案,问题是真正的数据库在记录中使用了希腊字符,并且必须将数据库设置为utf8-bin,这样做之后,它才能正常工作。