php - 执行此命令的正确方法

标签 php mysql

我有一个名为 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_addrREMOTE_ADDR 的整数形式。现在的问题是查询在 phpMyAdmin 中的 PHP 和 MySQL 中都返回一个空结果,即使我知道表中有一行 IP 号介于两者之间,因为我的 IP 号是表格中的一行是

| startIpNum | endIPNum    | locId   | 
 1677351936  |  1677354111 | 12431

所以我的结论是我的查询格式不正确。那么如何正确查询表以获得我想要的结果呢?

最佳答案

您提供的条件不正确,

SELECT * FROM `Blocks`
WHERE startIPNum <= $ip_addr
AND endIPNum >= $ip_addr

关于php - 执行此命令的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17037049/

相关文章:

java - 无法从 Java 连接到 MySQL : NullPointerException inside MySQL driver connection logic

php - MySQL 中两个日期列之间的差异

php - 在将 PHP 和 MySQL 代码存储到数据库之前或在显示时何时清理它们?

java - 方法execute返回的结果集数量

php - MySQL - 限制要获取的行

php - MySQLi 返回错误结果

mysql - 如何在sequelize中根据列名连接表?

php - 本地址中存在逗号时,将 CSV 文件导入 MySQL 时出现问题

php - 从 mySQL 数据库输出链接到表

php - 高效搜索 IP 范围 PHP 和 MySQL