MySQL 查询以检索每一行数据


mysql query to retrieve every single row of data

$q = "SELECT * FROM user";
$res = mysqli_query($conn, $q) or die(mysql_error());
$userList = "";
while($user = mysqli_fetch_array($res))
{
    $userList .= $user['userList'].";;";
}
echo $userList;

我不明白while部分:

  1. 为什么要使用 while 将mysqli_fetch_array分配给$user
  2. $user怎么会有userList指数?
  3. 为什么要与;;连接?

要回答您的问题:

i( mysqli_fetch_array()有两个可能的返回值。 它要么返回数据库结果集指针指向的当前行的数组,然后将指针前进到下一行,要么返回false(如果已到达结果集的末尾(。 while()计算设置为$row的值,如果循环是数组,则继续循环,如果$row等于false则停止循环

ii( $user数组的每个字段都有两个数字索引(即 0,1,2,...[#fields - 1](以及表的列名的关联索引(即"字段 1"、"字段 2"等(。 在这种情况下,数据库中的字段之一是 userList ,因此访问 $user['userList'] 将返回正在使用的行的列值。 BNote查询本身将被写成SELECT userList FROM user因为这是您唯一感兴趣的字段。 如果您不需要,则没有任何理由选择和传输所有字段数据。只使用mysqli_fetch_array()也很少有用,因为您很少需要记录上的数字索引和关联索引。通常最好根据您的需要专门请求关联或数字数组结果。

iii( 这段代码只是构建一个字符串,而不是一个可能更常见的结果数组。 无论出于何种原因,代码编写者决定字符串中的值应用 ;; 分隔。