Closed
Description
Description
The following code:
//$pdo already connected with no dialect specified (Defaults to 3 ?)
$sql="SELECT SOME_INDEX,
SOME_NUMERIC_FIELD,
CAST (SOME_NUMERIC_FIELD AS VARCHAR(255)) AS SOME_NUMERIC_FIELD_STRING
FROM MYTABLE WHERE SOME_INDEX='1234' ";
$objPDOStatement=$pdo->query($sql);
foreach($objPDOStatement as $arrRow){
print_r($arrRow);
exit;
}
Resulted in this output in PHP 8.1.12 :
Array
(
[SOME_INDEX] => 1234
[0] => 1234
[SOME_NUMERIC_FIELD] => 0.00000000
[1] => 0.00000000
[SOME_NUMERIC_FIELD_STRING] => 1.00000000
[2] => 1.00000000
)
But I expected this output instead as per PHP 7.4:
Array
(
[SOME_INDEX] => 1234
[0] => 1234
[SOME_NUMERIC_FIELD] => 1.00000000
[1] => 1.00000000
[SOME_NUMERIC_FIELD_STRING] => 1.00000000
[2] => 1.00000000
)
Both report LI-V6.3.5.33220 Firebird 3.0 from a call to
$pdo->getAttribute(PDO::ATTR_CLIENT_VERSION)
Makes no difference if I set
$pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true);
PHP Version
PHP 8.1.12
Operating System
Ubuntu 20.04