我几乎可以让MySQL在本地存储的maxmind数据库中执行geoip查找。使用命令行mysql >语法检索记录时我一直遵循的操作说明。例如:
mysql> SELECT glc.*
FROM geoip_blocks gbl
JOIN geoip_locations glc
ON glc.glc_id = gbl.gbl_glc_id
WHERE gbl_block_start <= INET_ATON('149.156.1.4')
ORDER BY gbl_block_start DESC
LIMIT 1\G
然而,我很难在php脚本中将其转换为mysql查询。
我试过了:
`Select glc.* from geoip_blocks gbl JOIN geoip_locations glc ON glc.glc_id = gbl.gbl_glc_id WHERE gbl_block_start <= INET_ATON('149.156.1.4') ORDER BY gbl_block_start DESC LIMIT 1\G`
但这不管用。我相信这是一个很容易解决的问题,但我被难住了。
发布于 2015-01-15 17:58:55
mysql
命令行有一个SQL宏,但是在原始\G
中没有这样的宏。省略掉这个。也没有必要包含;
。
发布于 2015-01-15 18:16:08
您的php脚本应该如下所示:
//set connection up
$mysql = new mysqli('mysql_server', 'mysql_user_name', 'mysql_password','mysql_DB');
//query
$sql = "SELECT glc.*
FROM geoip_blocks gbl
JOIN geoip_locations glc ON glc.glc_id = gbl.gbl_glc_id
WHERE gbl_block_start <= INET_ATON('149.156.1.4')
ORDER BY gbl_block_start DESC
LIMIT 1";
//run query & store result
$result = $mysql->query($sql);
//take a look at the results
if($result){
while($row = $result->fetch_assoc()){
var_dump($row);
}
}
https://stackoverflow.com/questions/27969919
复制相似问题