MySQL无法将IP置于查询中

时间:2014-06-19 17:55:55

标签: php mysql

我有一个MySQL查询,它应该将禁止的用户从数据库中拉出来,这是脚本:

function selectBans($remoteip){
    $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
    $query = "SELECT bannedip FROM bans WHERE bannedip = $remoteip";
    $data = mysqli_query($dbc, $query) or die("Error: ".mysqli_error($dbc));
    $row = mysqli_fetch_array($data);
    if((mysqli_num_rows($data) > 0 )){
    echo "You've Been Banned";
    exit();
    }
}

它给出的错误如下:

错误:您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第1行的“.1.1”附近使用正确的语法

我需要知道如何将ip插入数据库查询

2 个答案:

答案 0 :(得分:2)

问题是你没有在构造的MySQL查询字符串中用引号括起IP本身。所以它将它视为一个数字,然后抛出语法错误,因为它有多个句点。添加引号,你就会变得金黄。

答案 1 :(得分:-1)

将$ remoteip包含在引号中,如下所示:

$query = "SELECT bannedip FROM bans WHERE bannedip = '$remoteip'";