summaryrefslogtreecommitdiffstats
path: root/system/database
diff options
context:
space:
mode:
authorsapics <gv.nishino@gmail.com>2021-01-16 08:10:57 +0100
committersapics <gv.nishino@gmail.com>2021-01-16 08:10:57 +0100
commit624ddad97028087ee4d61ab90827b944a192f65e (patch)
tree0f9a7790abdb02bb42cb6fb29757185734a1bc43 /system/database
parentaf8cbdeed7b43951301e906bf73cabd948a9299a (diff)
Fix error in pdo/pgsql for php8.0
From PHP8.0, default PDO::ATTR_ERRMODE is changed from PDO::ERRMODE_SILENT to PDO::ERRMODE_EXCEPTION. Reference: https://wiki.php.net/rfc/pdo_default_errmode
Diffstat (limited to 'system/database')
-rw-r--r--system/database/DB_driver.php2
-rw-r--r--system/database/drivers/pdo/pdo_driver.php8
2 files changed, 9 insertions, 1 deletions
diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index cba96d9a2..a213d5cba 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -825,7 +825,7 @@ abstract class CI_DB_driver {
{
return $this->_trans_status;
}
-
+
// --------------------------------------------------------------------
/**
diff --git a/system/database/drivers/pdo/pdo_driver.php b/system/database/drivers/pdo/pdo_driver.php
index d0a2bf959..b2178b684 100644
--- a/system/database/drivers/pdo/pdo_driver.php
+++ b/system/database/drivers/pdo/pdo_driver.php
@@ -131,6 +131,14 @@ class CI_DB_pdo_driver extends CI_DB {
$this->options[PDO::ATTR_PERSISTENT] = TRUE;
}
+ // From PHP8.0, default PDO::ATTR_ERRMODE is changed
+ // from PDO::ERRMODE_SILENT to PDO::ERRMODE_EXCEPTION
+ // as https://wiki.php.net/rfc/pdo_default_errmode
+ if ( ! isset($this->options[PDO::ATTR_ERRMODE]))
+ {
+ $this->options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_SILENT;
+ }
+
try
{
return new PDO($this->dsn, $this->username, $this->password, $this->options);