diff --git a/Connection.php b/Connection.php index 3b1c98a..8004781 100644 --- a/Connection.php +++ b/Connection.php @@ -159,7 +159,7 @@ class Connection extends Component 'read_timeout' => $this->read_timeout, 'dbname' => $this->database, 'pool' => $this->pool - ]); + ], true); } /** @@ -168,10 +168,16 @@ class Connection extends Component */ public function getSlaveClient(): PDO { - if (empty($this->slaveConfig) || $this->slaveConfig['cds'] == $this->cds) { - return $this->getMasterClient(); - } - return $this->connection->get($this->slaveConfig); + return $this->connection->get([ + 'cds' => $this->slaveConfig['cds'] ?? $this->cds, + 'username' => $this->slaveConfig['username'] ?? $this->username, + 'password' => $this->slaveConfig['password'] ?? $this->password, + 'attributes' => $this->slaveConfig['attributes'] ?? $this->attributes, + 'connect_timeout' => $this->connect_timeout, + 'read_timeout' => $this->read_timeout, + 'dbname' => $this->slaveConfig['database'] ?? $this->database, + 'pool' => $this->pool + ], false); } /** diff --git a/Mysql/PDO.php b/Mysql/PDO.php index 43a98b1..ca2868c 100644 --- a/Mysql/PDO.php +++ b/Mysql/PDO.php @@ -334,16 +334,13 @@ class PDO implements StopHeartbeatCheck \PDO::ATTR_EMULATE_PREPARES => false, \PDO::ATTR_CASE => \PDO::CASE_NATURAL, \PDO::ATTR_TIMEOUT => $this->connect_timeout, - \PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true, \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES ' . $this->charset ]); $link->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); $link->setAttribute(\PDO::ATTR_STRINGIFY_FETCHES, false); $link->setAttribute(\PDO::ATTR_ORACLE_NULLS, \PDO::NULL_EMPTY_STRING); - if (!empty($this->attributes)) { - foreach ($this->attributes as $key => $attribute) { - $link->setAttribute($key, $attribute); - } + foreach ($this->attributes as $key => $attribute) { + $link->setAttribute($key, $attribute); } return $link; }