mysql查询检索每一行数据

时间:2013-11-23 01:00:14

标签: php mysql

$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. 为什么要将mysqli_fetch_array分配给$user使用?
  2. $user如何拥有userList的索引?
  3. 为什么要与;;连接?

1 个答案:

答案 0 :(得分:3)

回答你的问题:

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

时停止循环

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

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