当尝试在PHP中运行MYSQLI命令时,它的回复失败。
function DB_query($query, $params = []) {
$conn = DB_connect();
if ($params)
{
$stmt = $conn->prepare($query);
$types = str_repeat('s', count($params));
$stmt->bind_param($types, ...$params);
$stmt->execute();
$result = $stmt->get_result();
} else {
$result = mysqli_query($conn, $query);
}
if ($result)
{
$result = mysqli_fetch_all($result);
return $result;
} else {
return mysqli_affected_rows($conn);
}
}
这是我的问题:
DB_query("SELECT count(*) FROM members WHERE email = ? LIMIT 1",[$email])
它运行于:
$result = mysqli_fetch_all($result);
$ result的结果:array(1)([0] => array(1)([0] =>(int)1))
这是我的问题:
DB_query("SELECT id, username, password FROM members WHERE email = ? LIMIT 1",[$email]);
它运行于:
$result = mysqli_fetch_all($result);
$ result的结果:>阵列(0)
我试过更换" mysqli_fetch_all" fetch_all,但我无法弄明白。我需要两个查询来运行相同的功能。 我无法弄清楚为什么最后一个查询在数组中没有返回任何内容。
答案 0 :(得分:-1)
<?php
$sql = "SELECT * FROM members WHERE email = '".$email."'";
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_row($result)) {
echo $row[0];
echo $row[1];
echo $row[2];
}
?>
或者,您可以使用mysqli_fetch_array并在循环中使用$row['fieldname']
。