Thomas Bruederli
2012-11-07 df79b2638fe171957dc2ce2a606b91f3e4b9fe2d
program/include/rcube_db_mysql.php
@@ -31,6 +31,8 @@
 */
class rcube_db_mysql extends rcube_db
{
    public $db_provider = 'mysql';
    /**
     * Driver initialization/configuration
     */
@@ -59,6 +61,10 @@
    /**
     * Returns PDO DSN string from DSN array
     *
     * @param array $dsn DSN parameters
     *
     * @return string Connection string
     */
    protected function dsn_string($dsn)
    {
@@ -91,6 +97,43 @@
    }
    /**
     * Returns driver-specific connection options
     *
     * @param array $dsn DSN parameters
     *
     * @return array Connection options
     */
    protected function dsn_options($dsn)
    {
        $result = array();
        if (!empty($dsn['key'])) {
            $result[PDO::MYSQL_ATTR_KEY] = $dsn['key'];
        }
        if (!empty($dsn['cipher'])) {
            $result[PDO::MYSQL_ATTR_CIPHER] = $dsn['cipher'];
        }
        if (!empty($dsn['cert'])) {
            $result[PDO::MYSQL_ATTR_SSL_CERT] = $dsn['cert'];
        }
        if (!empty($dsn['capath'])) {
            $result[PDO::MYSQL_ATTR_SSL_CAPATH] = $dsn['capath'];
        }
        if (!empty($dsn['ca'])) {
            $result[PDO::MYSQL_ATTR_SSL_CA] = $dsn['ca'];
        }
        // Always return matching (not affected only) rows count
        $result[PDO::MYSQL_ATTR_FOUND_ROWS] = true;
        return $result;
    }
    /**
     * Get database runtime variables
     *
     * @param string $varname Variable name