PHP MYSQLI查询失败

时间:2018-03-13 03:56:57

标签: php mysqli

当尝试在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,但我无法弄明白。我需要两个查询来运行相同的功能。 我无法弄清楚为什么最后一个查询在数组中没有返回任何内容。

1 个答案:

答案 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']