【发布时间】:2011-12-29 19:25:00
【问题描述】:
我有一个数据库,其中有一个名为“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 个小时,但仍然无法弄清楚我做错了什么。
【问题讨论】:
-
顺便说一句,通过将 IP 地址存储为整数可以提高效率。使用 MySQL 函数 INET_ATON 和 INET_NTOA 在地址和整数之间进行转换,并为 ip 使用 UNSIGNED INT 列。好处是固定的行大小、更快的索引以及因此更快的查找。
-
好吧,我喜欢更快!我现在会努力做到这一点。