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

Posted

技术标签:

【中文标题】mysqli_fetch_assoc (& PDO fetch assoc) 将数字存储为字符串【英文标题】:mysqli_fetch_assoc (& PDO fetch assoc) storing numbers as strings 【发布时间】:2012-11-17 00:48:51 【问题描述】:

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

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

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

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

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

非常感谢!

【问题讨论】:

【参考方案1】:

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

你的评论:

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

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

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

【讨论】:

所以我认为您建议将它们保留为字符串格式并尝试找到分解我的数据以进行传输的方法?我以前很怕那个! ;)) 非常感谢您的知识!

以上是关于mysqli_fetch_assoc (& PDO fetch assoc) 将数字存储为字符串的主要内容,如果未能解决你的问题,请参考以下文章

mysqli_fetch_assoc() 性能 PHP5.4 与 PHP7.0

mysqli_fetch_assoc() 期望参数/调用成员函数 bind_param() 错误。如何获得实际的mysql错误并修复它?

mysqli_fetch_assoc() 期望参数/调用成员函数 bind_param() 错误。如何获得实际的mysql错误并修复它?

mysqli_fetch_assoc() 期望参数/调用成员函数 bind_param() 错误。如何获得实际的mysql错误并修复它?

mysqli_fetch_assoc() 期望参数/调用成员函数 bind_param() 错误。如何获得实际的mysql错误并修复它?

mysqli_fetch_assoc() 期望参数/调用成员函数 bind_param() 错误。如何获得实际的mysql错误并修复它?