php - 为什么 mysqli_num_rows 总是返回 0?

标签 php mysql database

如果数据库中存在单词,我想在用户点击提交按钮后检查他的输入。

因此,我有这段代码。但是,它总是说数据不存在,它发现条件为假。

我下面的代码有什么问题?

$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";
}

最佳答案

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

$a = mysqli_query($data_check);

连接的变量是未知的,所以你需要基于:

$a = mysqli_query($connection, $data_check);

并且您可能必须为您的 num_rows() 使用 >0 而不是 ==1 因为可能有多个记录.

您的代码也可以进行 sql 注入(inject);使用准备好的语句。

使用 PHP 的 error reporting和查询上的 mysqli_error($connection)

还要确保您的连接实际上是 mysqli_ 而不是另一个 api。

关于php - 为什么 mysqli_num_rows 总是返回 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45691025/

相关文章:

SQL - 使用 2 列中的值进行选择,这两个列至少应出现一次

PHP mailparse.so 错误 - undefined symbol mbfl_convert_filter_flush

php - Paypal 为定期付款设置无限周期

php - 只允许特殊级别的人登录

php - 多地点销售点软件的设计流程

mysql - mcafee mysql 审计插件版本 vs mysql 版本

MySQL:WHERE 子句中的整数到字符串类型比较

javascript - 我可以使用 Netbeans 7.3 来调试 PHP 脚本以响应 JSON 请求吗?

mysql - 在 mysql 中选择当前日期和当前日期后 3 个月之间的日期

database - Spring boot Oracle JPA 设置 QueryTimeout