Aleksander Machniak
2012-08-28 b79cc545ec020f7dd4bd83dcd06af3cf2b1fcaff
program/include/rcube_db.php
@@ -196,7 +196,7 @@
    }
    /**
     * Connect to appropiate database depending on the operation
     * Connect to appropriate database depending on the operation
     *
     * @param string $mode Connection mode (r|w)
     */
@@ -252,13 +252,31 @@
    }
    /**
     * Writes debug information/query to 'sql' log file
     *
     * @param string $query SQL query
     */
    protected function debug($query)
    {
        if ($this->options['debug_mode']) {
            rcube::write_log('sql', '[' . (++$this->db_index) . '] ' . $query . ';');
        }
    }
    /**
     * Getter for error state
     *
     * @return boolean True on error
     * @param int $res_id Optional query result identifier
     *
     * @return string Error message
     */
    public function is_error()
    public function is_error($res_id = null)
    {
        return $this->db_error ? $this->db_error_msg : false;
        if ($res_id !== null) {
            return $this->_get_result($res_id) === false ? $this->db_error_msg : null;
        }
        return $this->db_error ? $this->db_error_msg : null;
    }
    /**
@@ -378,9 +396,7 @@
        $query = rtrim($query, ';');
        if ($this->options['debug_mode']) {
            rcube::write_log('sql', '[' . (++$this->db_index) . '] ' . $query . ';');
        }
        $this->debug($query);
        $query = $this->dbh->query($query);
@@ -416,7 +432,6 @@
    /**
     * Get last inserted record ID
     * For Postgres databases, a sequence name is required
     *
     * @param string $table Table name (to find the incremented sequence)
     *
@@ -559,6 +574,10 @@
        // handle int directly for better performance
        if ($type == 'integer' || $type == 'int') {
            return intval($input);
        }
        if (is_null($input)) {
            return 'NULL';
        }
        // create DB handle if not available
@@ -805,28 +824,6 @@
        }
        return $table;
    }
    /**
     * Return correct name for a specific database sequence
     * (used for Postgres only)
     *
     * @param string $sequence Secuence name
     *
     * @return string Translated sequence name
     */
    public function sequence_name($sequence)
    {
        $rcube = rcube::get_instance();
        // return sequence name if configured
        $config_key = 'db_sequence_'.$sequence;
        if ($name = $rcube->config->get($config_key)) {
            return $name;
        }
        return $sequence;
    }
    /**