最佳答案
问题是数据库查询应该为整数列返回 PHP 中的整数数据类型。相反,查询将每个列作为字符串类型返回。
我已经确保“ PDO: : ATTR _ STRINGIFY _ FETCHES”如果 假的只是为了确保结果没有被强制转换为字符串。
我看到的答案是:
从我的研究中我了解到这是一个驱动程序实现问题。
许多来源声称 MySQL 本机驱动程序不支持返回数值类型。这似乎不是真的,因为它可以在 Mac OS X 上工作。除非他们的意思是说“在 Linux上的 MySQL 本地驱动程序不支持这个功能”。
这意味着我在 Mac OS X 上安装的驱动程序/环境有一些特殊之处。我一直试图找出这些不同之处,以便应用一个修复程序,但我的知识限制了我如何检查这些东西。
版本: 10.04.1
PHP 5.4.21-1 + debphp.org ~ lucid + 1(cli)(编译: Oct 21201308:14:37)
Php-i
Pdo _ mysql
启用了 MySQL = > 的 PDO 驱动程序 客户端 API 版本 = > 5.1.72
10.7.5
PHP 5.4.16(cli)(编译: Aug 22201309:05:58)
Php-i
Pdo _ mysql
启用了 MySQL = > 的 PDO 驱动程序 客户端 API 版本 = > mysqlnd 5.0.10-20111026-$Id: e707c415db32080b3752b232487a435ee0372157 $
PDO::ATTR_CASE => PDO::CASE_NATURAL,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL,
PDO::ATTR_STRINGIFY_FETCHES => false,
PDO::ATTR_EMULATE_PREPARES => false,