使用 PDO 从 MySQL 检索数值数据类型
使用 PDO 和 MySQL 时,您可能会遇到从数据库检索的数值为作为字符串而不是数字数据类型返回。这种差异可能是由于 PHP 数据库对象 (PDO) 扩展的默认行为造成的。
为什么使用字符串而不是数字?
不幸的是,这种情况相对常见查询数据库时接收字符串而不是数字。发生这种情况是因为 PDO 扩展通常会将数值从数据库转换为字符串,以确保与所有支持的数据库驱动程序的兼容性。
禁用字符串转换
以防止 PDO 字符串化数值,您可以修改 PDO 属性 PDO::ATTR_EMULATE_PREPARES。通过将此属性设置为 false,您可以禁用预准备语句模拟并允许 MySQL 返回本机数据类型,包括数字类型。
$dsn = 'mysql:dbname=database;host=localhost'; $pdo = new PDO($dsn, $user, $pass, array( PDO::ATTR_EMULATE_PREPARES => false ));
PDO::ATTR_STRINGIFY_FETCHES
PDO::ATTR_STRINGIFY_FETCHES 属性不适用于 MySQL PDO 驱动程序。此属性适用于支持返回字符串而不是本机数据类型的其他数据库驱动程序。
因此,通过禁用 PDO 的预准备语句模拟,您可以确保数值作为本机数据类型返回,从而防止字符串化并允许您正确处理数据。
以上是如何使用 PDO 从 MySQL 检索数字数据类型而不进行字符串转换?的详细内容。更多信息请关注PHP中文网其他相关文章!