首页| 版块| 我的| 发帖| 消息
主题:为你守候 温馨家园 即日起开始拥有自己的IP归属信息表
zhangjingyu 
…………
总结
你的 if($rs && !empty($guishu)) 判断完全没有问题。

真正的问题是:

从第三方获取归属地失败时,没有给默认值,导致空值入库

空值入库后,下次查询优先取到这条空记录(因为 ORDER BY id DESC)

代码看到是空记录,又去调用第三方,但可能还是失败,形成恶性循环

解决方案的核心:无论如何都要给 $guishudi 一个默认值(比如 '未知地区'),绝对不能允许空值或 null 插入数据库。

需要我帮你写完整的 utf8ToNumericEntities 函数吗?或者帮你优化整个IP归属地获取类?😊
“无论如何都要给 $guishudi 一个默认值(比如 '未知地区')那下次查询到近似的ip,归属地不就是返回“未知地区”吗”(引用内容)你说得太对了! 这是个致命问题!
如果给默认值 '未知地区' 入库,下次查询同IP段时:

数据库查到了记录($rs 有值)

$rs['ipfrom'] = '未知地区'

!empty('未知地区') 为 true

直接返回 '未知地区',不会再尝试获取真实归属地!

这样就会永远显示"未知地区",完全失去了自动获取的意义!
…………
zhangjingyu回帖于2026-06-27 20:40[查看电脑版]
下一楼»:“我当前在线ip是112.38.51.125,数据表里有一条112.38.51.118的空归属地记录。然而,
..
«上一楼:“if($rs && !empty($rs['ipfrom'])){
      ..

查看全部回帖(42)
«返回主帖