Php 已准备语句上的mysqli_num_行返回0

Php 已准备语句上的mysqli_num_行返回0,php,mysqli,Php,Mysqli,我有一个类似这样的函数,其目的是通过电子邮件检查数据库中是否已经存在用户: function b_check_if_email_exists(mysqli $db_object, $email) { $statement = $db_object->prepare("SELECT * FROM users WHERE email = ?"); $statement->bind_param("s", $email); $statement->execute

我有一个类似这样的函数,其目的是通过电子邮件检查数据库中是否已经存在用户:

function b_check_if_email_exists(mysqli $db_object, $email)
{
    $statement = $db_object->prepare("SELECT * FROM users WHERE email = ?");
    $statement->bind_param("s", $email);
    $statement->execute();
    return ($statement->num_rows > 0);
}
但是,由于
$statement->num_rows
始终为0,因此函数始终返回
false
。输入查询
SELECT*FROM users,其中email=”email@user.com“
into MySQL Workbench可以完美地工作。任何帮助都将不胜感激。

请尝试:

function b_check_if_email_exists(mysqli $db_object, $email)
{
    $statement = $db_object->prepare("SELECT * FROM users WHERE email = ?");
    $statement->bind_param("s", $email);
    $statement->execute();
    $statement->store_result();
    return ($statement->num_rows > 0);
}

检查$email的值$email的值符合预期(“email@user.com)。为什么在
mysqli$db_对象中有
mysqli
?另外,在
返回
ed后如何检索它?回程就停在那里,当然解决了。但是,这起作用了,谢谢!我会尽快接受这个答案。有了13.8K rep,你仍然会尝试使用它作为你的描述,但没有解释为什么添加
->store_result()
可以解决OP的问题?有了13.8K rep,我看到了无数事情不起作用的原因,因此尝试使用公式。我真的认为OP足够聪明,如果他想了解更多,他可以搜索这一行代码的功能。总而言之,我认为你最好花时间给出真正的答案,而不是试图抨击别人。这样不仅会让每个人都赢,而且有一天,你也可能成为拥有138K代表的人