1

像往常一样,尽我的职责到处寻找溶胶,但无济于事。

mysqli_fetch_assoc (显然)将我的数字存储为字符串。

通常情况下,我可能不太在意,但我的网站几乎 100% 使用 ajax,而且它会移动大量数据,所以所有这些 json " 开始加起来。

如果我只是抓取一个列值,我可以 intval,但我想抓取具有相关列名的整行。

有没有办法让 mysqli_fetch_assoc(和 PHP PDO 的 fetch assoc)将数字存储为数字?

提前谢谢了!

4

1 回答 1

1

MySQL 可以存储 64 位数字和无符号数字,PHP 的int类型默认不支持这两种数字。如果您尝试从数据库中获取溢出intPHP 中的变量的数值数据,您将丢失信息。这就是 PHP 数据库客户端将数字作为字符串获取的原因。

回复您的评论:

是的,如果您担心 JSON 的大小,请在您的 PHP 应用程序中转换数据以获得更紧凑的表示。

尽管您说您将列名作为 JSON 的一部分进行传输,但字符串格式的整数和二进制整数之间的区别似乎并不是您的瓶颈。

我的意思是,将 string-int 转换为二进制 int 会将位数减少约 50%。但是,如果无论如何您都将列名作为字符串,那么您只会缩小 JSON 的一小部分。列仍然是字符串。

于 2012-11-29T01:42:50.597 回答