为什么mysqli_num_rows总是返回0?

1 php mysql database

我想在用户点击提交按钮后检查用户的输入是否存在于数据库中.

因此,我有这个代码.但是,它总是说数据不存在,它发现条件为false.

我的代码有什么问题?

$input_word = trim($_POST["word"]);
$data_check = "SELECT * FROM word_collections WHERE single_word = '$input_word'";
$a = mysqli_query($data_check);
if (mysqli_num_rows($a) == 1)
{
    echo "Data exist.";
}
else
{
    echo "Data DOES NOT exist";
}
Run Code Online (Sandbox Code Playgroud)

Fun*_*ner 5

您的查询失败,因为您没有将db连接传递给:

$a = mysqli_query($data_check);
Run Code Online (Sandbox Code Playgroud)

连接的变量未知,因此您需要自己确定:

$a = mysqli_query($connection, $data_check);
Run Code Online (Sandbox Code Playgroud)

你可能需要使用>0,而不是==1你的num_rows(),因为可能不止一个记录.

你的代码也开放给sql注入; 使用准备好的声明.

使用PHP的错误报告mysqli_error($connection)查询.

还要确保你的连接实际上mysqli_不是另一个api.