我试图检查变量$ host的内容是否存在于我的数据库的ID列中。之后,如果条目在数据库中,我希望它将相应的值分配给$ exists。
由于某些原因,无论数据库中是否包含$ host,我脚本的这一部分总是返回相同的结果。请帮助:)
$query = mysqli_query($conn, "SELECT 'ID' FROM 'servers' WHERE 'ID' = '$host'");
if (empty($query)) {
$exists = "false";
}
else {
$exists = "true";
}
答案 0 :(得分:2)
这一行
$query = mysqli_query($conn, "SELECT 'ID' FROM 'servers' WHERE 'ID' = '$host'");
需要像这样:
$query = mysqli_query($conn, "SELECT `ID` FROM `servers` WHERE `ID` = '$host'");
现在,您正在选择ID作为字符串,因此您需要将表和列名称放在``并将字符串(或包含字符串的变量放在''中)
然后再做
$count = $conn -> num_rows($query);
if ($count < 1 ) {
$exists = "false";
}
else
{
$exists = "true";
}
实际检查包含$host
值的行数
另外,你至少应该使用
$host = mysqli_real_escape_string($conn, $host);
在查询中使用变量之前要避免使用mysql注入,但最好使用预处理语句。您的问题的评论中有一些链接可以帮助您。
<强> 旁注: 强>
使用or die(mysqli_error($conn))
到mysqli_query()
会发出错误信号。
答案 1 :(得分:1)
$query = mysqli_query($conn, "SELECT ID FROM servers WHERE ID = '".$host."'");
if (empty($query)) {
$exists = "false";
}
else {
$exists = "true";
}