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/17994770/

相关文章:

javascript - VueJS Axios POST 在页面传递变量时返回 NULL

Mysql表多个外键

php - 输出帖子评论量

php - MySQL 加入 PHP PDO 作为子对象

php - 如何使用 PHPs PDO 层设置 postgresql 客户端字符集?

php - 使用动态 URL 进行 PayPal 重定向

php - 根据 $_GET 选择一个选项。这可能吗?

php - 如何对多列进行快速排序

mysql - 从 MySQL 表中获取累计总和

mysql - 如何正确连接三张表