From 071b292969ed26c85167fd6fa23912fb90c2a09f Mon Sep 17 00:00:00 2001 From: Koji Tanaka Date: Sun, 19 Feb 2023 12:58:05 +0900 Subject: [PATCH] docs: Comment on database.php about adding `PDO::ATTR_STRINGIFY_FETCHES => true` flag in PHP 8.1 Comment on how to set up when using PDO MySQL/SQLite driver with connection flags unspecified and PHP 8.1 to keep the type when retrieving integer/float columns. --- app/Config/database.php.default | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/Config/database.php.default b/app/Config/database.php.default index 9e0776b25..6ff70e819 100644 --- a/app/Config/database.php.default +++ b/app/Config/database.php.default @@ -49,7 +49,7 @@ * database. Uses database default not specified. * * sslmode => - * For Postgres specifies whether to 'disable', 'allow', 'prefer', or 'require' SSL for the + * For Postgres specifies whether to 'disable', 'allow', 'prefer', or 'require' SSL for the * connection. The default value is 'allow'. * * unix_socket => @@ -75,6 +75,15 @@ class DATABASE_CONFIG { 'database' => 'database_name', 'prefix' => '', //'encoding' => 'utf8', + + // PDO MySQL/SQLite Driver had the following backward incompatible changes in PHP 8.1 + // * https://www.php.net/manual/en/migration81.incompatible.php#migration81.incompatible.pdo.mysql + // * https://www.php.net/manual/en/migration81.incompatible.php#migration81.incompatible.pdo.sqlite + // If under PHP 8.1 and didn't use the following flags, adding them will cause integer and float columns + // in the result set to be strings as before. + // 'flags' => array( + // PDO::ATTR_STRINGIFY_FETCHES => true + // ) ); public $test = array( @@ -86,5 +95,9 @@ class DATABASE_CONFIG { 'database' => 'test_database_name', 'prefix' => '', //'encoding' => 'utf8', + + // 'flags' => array( + // PDO::ATTR_STRINGIFY_FETCHES => true + // ) ); }