0

我有一个 PHP 登录系统,在其中我使用以下查询来比较用户名和密码:

    $mQuery = $mysqli->query("SELECT * FROM users WHERE user = '" . 
    $mysqli->real_escape_string(md5($_POST['user'])) ."' AND  pass= '" . 
    $mysqli->real_escape_string(md5($_POST['pass'])) . "'");

除了“用户”和“通行证”之外,用户行中还有其他字段,例如“姓名”和“电子邮件”。如何将所有这些字段放入一个数组中?

4

3 回答 3

0

您可能想从手册开始...

$row = mysqli_fetch_array($mQuery, MYSQLI_ASSOC);

或者

$row = $mQuery->fetch_array(MYSQLI_ASSOC);

当您使用对象表示法时,请使用选项 2。

http://php.net/manual/en/mysqli-result.fetch-array.php

于 2013-05-03T00:26:11.250 回答
0

在 PHP 5.3 及更高版本中,fetch_all将所有行作为数组返回。如果将 MYSQLI_ASSOC 指定为结果类型,则数组中的每个元素都将是字段的关联数组,按名称索引。

// having done the query above

$rows = $mQuery->fetch_all(MYSQLI_ASSOC);

foreach ($rows as $row)
{
  print "email: " . $row['email'] . "<br />";
  // etc
}

对于早期版本,您可以手动完成:

$rows = array();

while ($row = $mQuery->fetch_array(MYSQLI_ASSOC))
  $rows[] = $row;

foreach ($rows as $row)
{
  print "email: " . $row['email'] . "<br />";
  // etc
}
于 2013-05-03T00:28:44.000 回答
0

也许这会有所帮助:

if($result = mysqli_query($conn, $mQuery))
{
    while($row = mysqli_fetch_assoc($result))
    {
        print_r($row);
    }
    mysqli_free_result($result);
}
于 2013-05-03T00:44:01.177 回答