mysqli_fetch_assoc(& PDO fetch assoc)将数字存储为字符串

时间:2012-11-29 01:33:41

标签: php ajax json pdo mysqli

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

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

通常情况下,我可能不在乎,但我的网站几乎是100%ajax,并且它会移动大量数据,因此所有这些json都开始加起来。

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

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

非常感谢提前!

1 个答案:

答案 0 :(得分:1)

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

重新评论:

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

虽然你说你要将列名作为JSON的一部分进行转移,但似乎字符串格式的int和二进制int之间的区别不是你的瓶颈。

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