$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部分:
- 为什么要使用 while 将
mysqli_fetch_array
分配给$user
? $user
怎么会有userList
指数?- 为什么要与
;;
连接?
要回答您的问题:
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( 这段代码只是构建一个字符串,而不是一个可能更常见的结果数组。 无论出于何种原因,代码编写者决定字符串中的值应用 ;;
分隔。