我有一个数据库,其中有一个名为“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";
}
现在我遇到的问题是,如果我将 IP 更改为:125.0.0.1
我已经尝试修复它 2 个小时了,但仍然无法弄清楚我做错了什么。
最佳答案
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";
}
顺便说一句,我在 REMOTE_ADDR
var 周围添加了 mysql_real_escape_string
,您应该始终清理您的输入:)
关于php - 检查IP地址是否存储在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8141626/