在我的代码中,我有一堆if子句检查用户给定的输入是否有效插入数据库。现在有一个小的if子句,我想检查userinput是否与数据库中的给定字符串相同。我已经尝试了一天我的错误是什么,我似乎无法找到解决方案。
$car = $_POST['car'];
$exists = mysqli_query("SELECT car FROM box WHERE car = '".$car."' AND del = 0;");
if($car == $exists) { //same string, give error1 } else { give error2 }
我不知道问题是什么,因为'=='应该区分大小写,并且据我所知,你可以比较像这样的变量中的字符串。
答案 0 :(得分:0)
为避免sql注入,最好使用prepared statement。
要检查查询是否返回任何行,您可以检查num_rows
属性。
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$carFound = false;
if ($stmt = $mysqli->prepare("SELECT car FROM box WHERE car = ? AND del = 0")) {
$car = $_POST['car'];
$stmt->bind_param("s", $car);
if ($stmt->execute() && $stmt->num_rows>0) {
$carFound = true;
}
}
//if (carFound) { same string, give error1 } else { give error2 }