Aleksander Machniak
2013-06-05 14226fc845521fd9c7100a056db9aaac0a7352da
Use built-in sqlite functions to "emulate" now() and unix_timestamp()
1 files modified
34 ■■■■■ changed files
program/lib/Roundcube/rcube_db_sqlite.php 34 ●●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_db_sqlite.php
@@ -56,10 +56,6 @@
     */
    protected function conn_configure($dsn, $dbh)
    {
        // we emulate via callback some missing functions
        $dbh->sqliteCreateFunction('unix_timestamp', array('rcube_db_sqlite', 'sqlite_unix_timestamp'), 1);
        $dbh->sqliteCreateFunction('now', array('rcube_db_sqlite', 'sqlite_now'), 0);
        // Initialize database structure in file is empty
        if (!empty($dsn['database']) && !filesize($dsn['database'])) {
            $data = file_get_contents(RCUBE_INSTALL_PATH . 'SQL/sqlite.initial.sql');
@@ -83,30 +79,26 @@
    }
    /**
     * Callback for sqlite: unix_timestamp()
     * Return SQL statement to convert a field value into a unix timestamp
     *
     * @param string $field Field name
     *
     * @return string  SQL statement to use in query
     * @deprecated
     */
    public static function sqlite_unix_timestamp($timestamp = '')
    public function unixtimestamp($field)
    {
        $timestamp = trim($timestamp);
        if (!$timestamp) {
            $ret = time();
        }
        else if (!preg_match('/^[0-9]+$/s', $timestamp)) {
            $ret = strtotime($timestamp);
        }
        else {
            $ret = $timestamp;
        }
        return $ret;
        return "strftime('%s', $field)";
    }
    /**
     * Callback for sqlite: now()
     * Return SQL function for current time and date
     *
     * @return string SQL function to use in query
     */
    public static function sqlite_now()
    public function now()
    {
        return date("Y-m-d H:i:s");
        return "datetime('now')";
    }
    /**