summaryrefslogtreecommitdiff
path: root/includes/database/mysql/database.inc
diff options
context:
space:
mode:
Diffstat (limited to 'includes/database/mysql/database.inc')
-rw-r--r--includes/database/mysql/database.inc11
1 files changed, 9 insertions, 2 deletions
diff --git a/includes/database/mysql/database.inc b/includes/database/mysql/database.inc
index 0b84f2719..fdf9271be 100644
--- a/includes/database/mysql/database.inc
+++ b/includes/database/mysql/database.inc
@@ -51,6 +51,11 @@ class DatabaseConnection_mysql extends DatabaseConnection {
// Because MySQL's prepared statements skip the query cache, because it's dumb.
PDO::ATTR_EMULATE_PREPARES => TRUE,
);
+ if (defined('PDO::MYSQL_ATTR_MULTI_STATEMENTS')) {
+ // An added connection option in PHP 5.5.21+ to optionally limit SQL to a
+ // single statement like mysqli.
+ $connection_options['pdo'] += array(PDO::MYSQL_ATTR_MULTI_STATEMENTS => FALSE);
+ }
parent::__construct($dsn, $connection_options['username'], $connection_options['password'], $connection_options['pdo']);
@@ -78,8 +83,10 @@ class DatabaseConnection_mysql extends DatabaseConnection {
$connection_options['init_commands'] += array(
'sql_mode' => "SET sql_mode = 'ANSI,STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER'",
);
- // Set connection options.
- $this->exec(implode('; ', $connection_options['init_commands']));
+ // Execute initial commands.
+ foreach ($connection_options['init_commands'] as $sql) {
+ $this->exec($sql);
+ }
}
public function __destruct() {