我最近将我的 Laminas 项目从 PHP 8.0 更新到 PHP 8.2。 PHP升级后,
integer
字段的select查询结果由string
变为integer
。
我搜索并看到一些建议将
PDO::ATTR_STRINGIFY_FETCHES
添加为true
,所以我将其添加到我的global.php
中,如下,
return [
'api-tools-content-negotiation' => [
'selectors' => [],
],
'db' => [
'adapters' => [
'dummy' => [],
],
'driver' => 'Pdo',
'dsn' => 'mysql:dbname=' . DB['DATABASE'] . ';host=' . DB['HOST'] . ';charset=utf8',
'driver-options' => [
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET CHARACTER SET \'UTF8\' ',
PDO::ATTR_STRINGIFY_FETCHES => true,
],
'username' => DB['USER'],
'password' => DB['PASSWORD']
],
];
但它仍然给出整数值。如何让它返回升级 PHP 之前的值?
确保正确应用您的
PDO::ATTR_STRINGIFY_FETCHES
设置。 如果此解决方案不起作用,则在 PHP 代码中转换数据类型,如下所示:
(string) $value