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语句,如果有错误,就会停止执行。
谢谢
我正在尝试查明某人在表格中填写的标题是否已在数据库中(否则我将在标题中添加一个数字)。但不知何故下面的代码总是返回 "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语句,如果有错误,就会停止执行。
谢谢