num_rows 总是返回数据库中没有行(等于我的输入),这是不正确的

num_rows always gives back that there are no rows (that are equal to my input) in the database which isn't true

我正在尝试查明某人在表格中填写的标题是否已在数据库中(否则我将在标题中添加一个数字)。但不知何故下面的代码总是返回 "doesn't exists".

[my_table_name]当然是改成正确的table名字了。 任何人都知道可能是什么问题?

$title = $_POST["title"]; 
$sql = "SELECT * FROM [my_table_name] WHERE title=$title";
$result = mysqli_query($con,$sql);
if(mysqli_num_rows($result)>0) {
  echo "exists";
} else {
  echo "doesn't exist";
}

你的SQL。在 $title:

上添加单引号
$sql = "SELECT * FROM [my_table_name] WHERE title='$title'";

没有评论权限因此写在这里。 问题看起来是您没有将单引号引起来,因为标题是一个字符串,所以它应该采用以下方式

$title = $_POST["title"]; 
$sql = "SELECT * FROM [my_table_name] WHERE title='$title'";
$result = mysqli_query($sql) or die(mysqli_error($con));
if(mysqli_num_rows($result)>0) {
  echo "exists";
} else {
  echo "doesn't exist";
}

也放上die语句,如果有错误,就会停止执行。

谢谢