我有一个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'])) . "'");
除了'user'和'pass'之外,用户行中还有其他字段,如'name'和'email'。如何将所有这些字段都放入数组中?
答案 0 :(得分:0)
您可能想从手册开始......
$row = mysqli_fetch_array($mQuery, MYSQLI_ASSOC);
或
$row = $mQuery->fetch_array(MYSQLI_ASSOC);
在使用对象表示法时,请使用选项2.
答案 1 :(得分: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
}
答案 2 :(得分:0)
也许这会有所帮助:
if($result = mysqli_query($conn, $mQuery))
{
while($row = mysqli_fetch_assoc($result))
{
print_r($row);
}
mysqli_free_result($result);
}