【发布时间】:2017-08-15 20:23:37
【问题描述】:
如果数据库中存在单词,我想在用户点击提交按钮后检查用户的输入。
因此,我有这个代码。但是,它总是说数据不存在,它发现条件为假。
我下面的代码有什么问题?
$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";
}
【问题讨论】:
-
您确定它返回的值不超过 1?更重要的是,您对SQL Injections 持开放态度,并且应该真正使用Prepared Statements 而不是连接您的查询。特别是因为您根本没有逃避用户输入!
-
我读过一篇文章 mysqli_num_rows 只会返回 1 或 0 @MagnusEriksson
-
No.. 它返回查询中返回的行数。 "num_rows" = "行数"。如果您对 php 函数有任何疑问,请始终从源头开始:the php manual
-
不完全正确。可能有不止一个记录。试试
>0,如果失败了,那么你的查询可能失败了,你需要检查错误。 -
@Fred-ii- 我尝试使用 > 0 但它仍然说数据不存在,我的数据库中已经有了它