我有一个名为Blocks的表,它看起来像这样:
| startIpNum | endIPNum | locId |
| int(11) | int(11) | int(11) |现在已经很简单了。正如您所猜到的,这是一个IP范围列表。我正在使用它进行地理定位。现在,我获取$_SERVER['REMOTE_ADDR']并将其转换为整数,并尝试使用以下查询查找该值所在的范围
"SELECT * FROM `Blocks` WHERE startIPNum >= '$ip_addr' AND endIPNum <= '$ip_addr' "其中$ip_addr是REMOTE_ADDR的整数形式。现在的问题是,查询在phpMyAdmin中的PHP和MySQL中都返回了一个空结果,即使我知道表中有一行IP号位于其中,因为我的IP号是1677352691,而表中的一行是
| startIpNum | endIPNum | locId |
1677351936 | 1677354111 | 12431所以我的结论是我的查询是不正确的。那么如何正确地查询表以获得我想要的结果呢?
发布于 2013-06-11 13:36:30
你给出的条件不正确,
SELECT * FROM `Blocks`
WHERE startIPNum <= $ip_addr
AND endIPNum >= $ip_addrhttps://stackoverflow.com/questions/17037049
复制相似问题