t我几乎可以让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`
但这行不通。 我确定这是一个简单的解决方案,但我被难住了。
mysql
命令行有一个'G
宏,但在原始SQL中不存在这样的东西。别管了。也没有必要包含;
。
你的 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);
}
}