检查MySQL表中是否存在PHP变量

时间:2014-10-26 12:42:10

标签: php mysql

我试图检查变量$ host的内容是否存在于我的数据库的ID列中。之后,如果条目在数据库中,我希望它将相应的值分配给$ exists。

由于某些原因,无论数据库中是否包含$ host,我脚本的这一部分总是返回相同的结果。请帮助:)

$query = mysqli_query($conn, "SELECT 'ID' FROM 'servers' WHERE 'ID' = '$host'");
if (empty($query)) {
        $exists = "false";
}
else {
        $exists = "true";
}

2 个答案:

答案 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";
}