Lev*_*ite 1 php mysql ip unsigned signed
是否有必要使用无符号整数列INET_ATON在 MySQL 中存储 IP(v4) 地址(已转换为)?
INET_ATON
我自发地认为这真的无关紧要,因为无论字段如何定义,都将使用相同的数据将其转换回INET_NTOA. 所以唯一的区别是,在一种情况下,您在 db 中看到一个负数,而使用 unsigned 您会看到一个(完全)不同的正数,而两种情况下的实际数据是相同的,只是表示通过字段定义而有所不同, 那是对的吗?
INET_NTOA
Dev*_*von 5
来自INET_ATON() 上的文档:
要存储由 INET_ATON() 生成的值,请使用 INT UNSIGNED 列而不是带符号的 INT。如果使用带符号的列,则无法正确存储与第一个八位字节大于 127 的 IP 地址对应的值。请参见第 11.2.6 节,“超出范围和溢出处理”。
为什么不使用未签名来保证兼容性?在你的场景中使用 unsigned 有什么缺点会让你质疑这一点?
归档时间:
11 年,4 月 前
查看次数:
993 次
最近记录: