mysqli_fetch_assoc(显然)将我的数字存储为字符串。
通常情况下,我可能不在乎,但我的网站几乎是100%ajax,并且它会移动大量数据,因此所有这些json都开始加起来。
如果我只是抓取一个列值,我可以intval,但我想获取具有相关列名的整行。
有没有办法让mysqli_fetch_assoc(以及PHP PDO的fetch assoc)将数字存储为数字?
非常感谢提前!
答案 0 :(得分:1)
MySQL可以存储64位数字和无符号数字,默认情况下,PHP的int
类型都不支持这两种数字。如果您尝试从数据库中获取溢出PHP中int
变量的数值数据,您将丢失信息。这就是PHP数据库客户端将数字作为字符串获取的原因。
重新评论:
是的,如果您担心JSON的大小,请转换PHP应用中的数据以获得更紧凑的表示。
虽然你说你要将列名作为JSON的一部分进行转移,但似乎字符串格式的int和二进制int之间的区别不是你的瓶颈。
我的意思是,将string-int转换为二进制int会使位减少约50%。但是如果你有列名作为字符串,那么你只是缩小了JSON的一小部分。列仍然是字符串。