【发布时间】:2014-04-29 15:01:13
【问题描述】:
我将 IP 地址存储在 mysql 数据库中,并且我想执行查询以检查特定 IP 地址是否已存在于数据库中。我读过建议将 IP 地址作为 INT 存储在 mysql 数据库中。所以这就是我正在做的事情:
$ip = '209.173.53.167'; // some random IP address
$ip_long = ip2long($ip); // convert IP address to integer
$sql = "SELECT *
FROM ip_addresses
WHERE ip='{$ip_long}'";
我在存储 IP 地址时执行了类似的操作,确保它们存储为 INT。但问题是我在WHERE 子句中的比较似乎不起作用。出于某种原因,WHERE ip='{$ip_long}' 不起作用。我已经执行了肯定可以工作的测试,但比较总是失败。我做错了什么?
【问题讨论】:
-
当您打印/转储查询并在命令/phpmyadmin 中运行它时,它是否按预期返回?您确定名称正确并且您的 SQL 连接/执行没有任何问题(您尚未发布)
-
小心...你应该在这里使用准备好的/参数化的查询。切勿将数据直接连接到查询中,即使现在对您来说似乎是安全的。您可能不知道您的代码将来会在什么上下文中使用。
标签: php mysql ip-address