检查IP地址是否存储在数据库中

Sel*_*oek 1 php mysql database ip

我有一个数据库,里面有一个名为'IP'的表.它有2列Id(int11)ip(varchar15),并与值的行:id 1, ip 127.0.0.1

现在回到PHP我有以下内容:

$ip = $_SERVER['REMOTE_ADDR'];
$query = "SELECT * FROM ip WHERE ip='$ip'";

if(mysql_query($query)) {
    echo "Ip is already in database";   
}
else {
    echo "Ip is not in database";
}
Run Code Online (Sandbox Code Playgroud)

现在我遇到的问题是如果我改变IP说if-statement仍然变为TRUE: 125.0.0.1

我一直试图将它修复2个小时,但仍然无法弄清楚我做错了什么.

Cli*_*ive 5

mysql_query()如果查询执行成功,即使没有结果,也不会返回false.请尝试使用mysql_num_rows():

$ip = mysql_real_escape_string($_SERVER['REMOTE_ADDR']);
$query = "SELECT * FROM ip WHERE ip='$ip'";
$result = mysql_query($query);

if (mysql_num_rows($result) > 0) {
  echo "Ip is already in database";
}
else { 
  echo "Ip is not in database";
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我添加mysql_real_escape_stringREMOTE_ADDRvar,你应该总是清理你的输入:)