@@ -143,34 +143,65 @@ public function db_connect($persistent = FALSE)
143143
144144 if ( ! empty ($ sql ))
145145 {
146- if (empty ( $ this -> options [ PDO :: MYSQL_ATTR_INIT_COMMAND ] ))
146+ if (class_exists ( ' Pdo \\ Mysql ' ))
147147 {
148- $ this ->options [PDO ::MYSQL_ATTR_INIT_COMMAND ] = 'SET SESSION sql_mode = ' .$ sql ;
148+ $ constant = constant ('Pdo \\Mysql::ATTR_INIT_COMMAND ' );
149+ } else {
150+ $ constant = PDO ::MYSQL_ATTR_INIT_COMMAND ;
151+ }
152+
153+ if (empty ($ this ->options [$ constant ]))
154+ {
155+ $ this ->options [$ constant ] = 'SET SESSION sql_mode = ' .$ sql ;
149156 }
150157 else
151158 {
152- $ this ->options [PDO :: MYSQL_ATTR_INIT_COMMAND ] .= ', @@session.sql_mode = ' .$ sql ;
159+ $ this ->options [$ constant ] .= ', @@session.sql_mode = ' .$ sql ;
153160 }
154161 }
155162 }
156163
157164 if ($ this ->compress === TRUE )
158165 {
159- $ this ->options [PDO ::MYSQL_ATTR_COMPRESS ] = TRUE ;
166+ if (class_exists ('Pdo \\Mysql ' ))
167+ {
168+ $ constant = constant ('Pdo \\Mysql::ATTR_COMPRESS ' );
169+ } else {
170+ $ constant = PDO ::MYSQL_ATTR_COMPRESS ;
171+ }
172+
173+ $ this ->options [$ constant ] = TRUE ;
160174 }
161175
162176 if (is_array ($ this ->encrypt ))
163177 {
178+ if (class_exists ('Pdo \\Mysql ' ))
179+ {
180+ $ sslKey = constant ('Pdo \\Mysql::ATTR_SSL_KEY ' );
181+ $ sslCert = constant ('Pdo \\Mysql::ATTR_SSL_CERT ' );
182+ $ sslCA = constant ('Pdo \\Mysql::ATTR_SSL_CA ' );
183+ $ sslCAPath = constant ('Pdo \\Mysql::ATTR_SSL_CAPATH ' );
184+ $ sslCipher = constant ('Pdo \\Mysql::ATTR_SSL_CIPHER ' );
185+ $ verify = constant ('Pdo \\Mysql::ATTR_SSL_VERIFY_SERVER_CERT ' );
186+ } else {
187+ $ sslKey = PDO ::MYSQL_ATTR_SSL_KEY ;
188+ $ sslCert = PDO ::MYSQL_ATTR_SSL_CERT ;
189+ $ sslCA = PDO ::MYSQL_ATTR_SSL_CA ;
190+ $ sslCAPath = PDO ::MYSQL_ATTR_SSL_CAPATH ;
191+ $ sslCipher = PDO ::MYSQL_ATTR_SSL_CIPHER ;
192+ $ verify = defined ('PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT ' ) ? PDO ::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT : null ;
193+ }
194+
164195 $ ssl = array ();
165- empty ($ this ->encrypt ['ssl_key ' ]) OR $ ssl [PDO :: MYSQL_ATTR_SSL_KEY ] = $ this ->encrypt ['ssl_key ' ];
166- empty ($ this ->encrypt ['ssl_cert ' ]) OR $ ssl [PDO :: MYSQL_ATTR_SSL_CERT ] = $ this ->encrypt ['ssl_cert ' ];
167- empty ($ this ->encrypt ['ssl_ca ' ]) OR $ ssl [PDO :: MYSQL_ATTR_SSL_CA ] = $ this ->encrypt ['ssl_ca ' ];
168- empty ($ this ->encrypt ['ssl_capath ' ]) OR $ ssl [PDO :: MYSQL_ATTR_SSL_CAPATH ] = $ this ->encrypt ['ssl_capath ' ];
169- empty ($ this ->encrypt ['ssl_cipher ' ]) OR $ ssl [PDO :: MYSQL_ATTR_SSL_CIPHER ] = $ this ->encrypt ['ssl_cipher ' ];
196+ empty ($ this ->encrypt ['ssl_key ' ]) OR $ ssl [$ sslKey ] = $ this ->encrypt ['ssl_key ' ];
197+ empty ($ this ->encrypt ['ssl_cert ' ]) OR $ ssl [$ sslCert ] = $ this ->encrypt ['ssl_cert ' ];
198+ empty ($ this ->encrypt ['ssl_ca ' ]) OR $ ssl [$ sslCA ] = $ this ->encrypt ['ssl_ca ' ];
199+ empty ($ this ->encrypt ['ssl_capath ' ]) OR $ ssl [$ sslCAPath ] = $ this ->encrypt ['ssl_capath ' ];
200+ empty ($ this ->encrypt ['ssl_cipher ' ]) OR $ ssl [$ sslCipher ] = $ this ->encrypt ['ssl_cipher ' ];
170201
171- if (defined ( ' PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT ' ) && isset ($ this ->encrypt ['ssl_verify ' ]))
202+ if ($ verify && isset ($ this ->encrypt ['ssl_verify ' ]))
172203 {
173- $ ssl [PDO :: MYSQL_ATTR_SSL_VERIFY_SERVER_CERT ] = $ this ->encrypt ['ssl_verify ' ];
204+ $ ssl [$ verify ] = $ this ->encrypt ['ssl_verify ' ];
174205 }
175206
176207 // DO NOT use array_merge() here!
0 commit comments