Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查数据库中是否存储了IP地址_Php_Mysql_Database_Ip - Fatal编程技术网

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

Php 检查数据库中是否存储了IP地址,php,mysql,database,ip,Php,Mysql,Database,Ip,我有一个数据库,其中有一个名为“IP”的表。它有两列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”的表。它有两列
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";
}
现在我遇到的问题是,如果我将IP更改为:
125.0.0.1

我已经尝试修复它两个小时了,但仍然无法找出我做错了什么。

如果查询成功执行,即使没有结果,也不会返回false。尝试改用:

顺便说一下,我在
REMOTE\u ADDR
var周围添加了
mysql\u real\u escape\u string
,您应该始终清理输入:)

如果查询成功执行,即使没有结果,也不会返回false。尝试改用:


顺便说一下,我在
REMOTE\u ADDR
var周围添加了
mysql\u real\u escape\u string
,您应该始终清理您的输入:)

使用mysql\u num\u行检查记录数

$query = mysql_query("SELECT * FROM ip WHERE ip='". $_SERVER['REMOTE_ADDR'] ."'");
$num = mysql_num_rows($query);

if($num > 0) {
  echo "Exists";
}
else {
  echo "Does not exist";
}

使用mysql\u num\u行检查记录数

$query = mysql_query("SELECT * FROM ip WHERE ip='". $_SERVER['REMOTE_ADDR'] ."'");
$num = mysql_num_rows($query);

if($num > 0) {
  echo "Exists";
}
else {
  echo "Does not exist";
}

谢谢你的快速回复,它就像一个符咒!关于mysql\u real\u escape\u字符串。有人也可以操纵它吗?老实说,我不完全确定,我的直觉说可能有人会向该变量中注入恶意值,但我不确定。如果我自己没有显式地设置var,我总是会犯一个谨慎的错误:)谢谢你的快速回复,它工作起来很有魅力!关于mysql\u real\u escape\u字符串。有人也可以操纵它吗?老实说,我不完全确定,我的直觉说可能有人会向该变量中注入恶意值,但我不确定。如果我自己没有显式地设置var,我总是在谨慎方面出错:)谢谢Wesso的快速回复!谢谢Wesso的快速回复!另一方面,通过将IP地址存储为整数,可以提高效率。使用MySQL函数和INET_NTOA在地址和整数之间进行转换,并为ip使用无符号INT列。好处是固定的行大小,更快的索引,因此更快的查找。好的,我喜欢更快!我现在就试着这样做。顺便说一句,将IP地址存储为整数可以提高效率。使用MySQL函数和INET_NTOA在地址和整数之间进行转换,并为ip使用无符号INT列。好处是固定的行大小,更快的索引,因此更快的查找。好的,我喜欢更快!我现在会努力做到这一点。