Php 检查数据库中是否存储了IP地址
我有一个数据库,其中有一个名为“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
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列。好处是固定的行大小,更快的索引,因此更快的查找。好的,我喜欢更快!我现在会努力做到这一点。