summaryrefslogtreecommitdiffstats
path: root/vendor/ipl/sql/src/Adapter/Mysql.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/ipl/sql/src/Adapter/Mysql.php')
-rw-r--r--vendor/ipl/sql/src/Adapter/Mysql.php57
1 files changed, 57 insertions, 0 deletions
diff --git a/vendor/ipl/sql/src/Adapter/Mysql.php b/vendor/ipl/sql/src/Adapter/Mysql.php
new file mode 100644
index 0000000..2421cae
--- /dev/null
+++ b/vendor/ipl/sql/src/Adapter/Mysql.php
@@ -0,0 +1,57 @@
+<?php
+
+namespace ipl\Sql\Adapter;
+
+use ipl\Sql\Config;
+use ipl\Sql\Connection;
+use PDO;
+
+class Mysql extends BaseAdapter
+{
+ protected $quoteCharacter = ['`', '`'];
+
+ protected $escapeCharacter = '``';
+
+ public function setClientTimezone(Connection $db)
+ {
+ $db->exec('SET time_zone = ' . $db->quote($this->getTimezoneOffset()));
+
+ return $this;
+ }
+
+ public function getOptions(Config $config)
+ {
+ $options = parent::getOptions($config);
+
+ if (! empty($config->useSsl)) {
+ if (! empty($config->sslKey)) {
+ $options[PDO::MYSQL_ATTR_SSL_KEY] = $config->sslKey;
+ }
+
+ if (! empty($config->sslCert)) {
+ $options[PDO::MYSQL_ATTR_SSL_CERT] = $config->sslCert;
+ }
+
+ if (! empty($config->sslCa)) {
+ $options[PDO::MYSQL_ATTR_SSL_CA] = $config->sslCa;
+ }
+
+ if (! empty($config->sslCapath)) {
+ $options[PDO::MYSQL_ATTR_SSL_CAPATH] = $config->sslCapath;
+ }
+
+ if (! empty($config->sslCipher)) {
+ $options[PDO::MYSQL_ATTR_SSL_CIPHER] = $config->sslCipher;
+ }
+
+ if (
+ defined('PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT')
+ && ! empty($config->sslDoNotVerifyServerCert)
+ ) {
+ $options[PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT] = false;
+ }
+ }
+
+ return $options;
+ }
+}