php - 如何使用 PDO 从 MySQL 获取数字类型?

标签 php mysql pdo

我正在使用 PDO 和 MySQL,出于某种原因,当从数据库中获取 int 类型的值时,PDOStatement 返回的是数字的字符串表示形式,而不是数字类型的值。如何防止这种情况发生?

我注意到 PDO 类的一个属性: PDO::ATTR_STRINGIFY_FETCHES 应该解决这个问题,但是当尝试修改它时,它会抛出一个错误,说该属性不是对 MySQL 驱动有效。

查询数据库时获取字符串而不是数字是否正常?

最佳答案

首先要回答您的最后一个问题,“是的”,不幸的是,将数字作为字符串接收是正常的。正如 Pascal 引用的手册所说,mysqlnd(PHP 5.3)将从准备好的语句返回 native 数据类型,前提是您关闭 PDO 的准备好的语句模拟。

new PDO($dsn, $user, $pass, array(
    PDO::ATTR_EMULATE_PREPARES => false
))

PDO::ATTR_STRINGIFY_FETCHES 与 MySQL 无关。

如果你看到好的一面,最好还是使用准备好的语句,所以... ;)

关于php - 如何使用 PDO 从 MySQL 获取数字类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1197005/

相关文章:

mysql - mysql 中的数据类型大小和存储

mysql - 将 "SQL SELECT STATEMENT"嵌套为 REGEX 运算符/内部

PHP Trait 碰撞构造函数

php - 如何将 PHP 数组值分配给 JavaScript 数组

php - 引用另一个表的加载条件 - Phpactiverecord

php - PDO 和 SQLite3 中准备好的查询有区别吗?

php - 在前 4 行之后计算 SQL 中的前 4 行

php - 如何保存类似evernote的所有样式和图像的网页?

php - Magento 查询速度慢

JavaScript/AJAX 在应该显示图片时显示 "undefined"