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