summaryrefslogtreecommitdiff
path: root/roundcubemail/program/include
diff options
context:
space:
mode:
authorroundcube <roundcube@208e9e7b-5314-0410-a742-e7e81cd9613c>2005-11-01 21:52:01 +0000
committerroundcube <roundcube@208e9e7b-5314-0410-a742-e7e81cd9613c>2005-11-01 21:52:01 +0000
commit395de94f6579600292a7cf55d84e5f1e3a8bbf09 (patch)
tree84e11b026a2c65dcc7632796b4a5e6f355e8fe8c /roundcubemail/program/include
parent9568dc736aaa758504ab8ae2a2e9e8803b4cc30a (diff)
Fixed session expiration issue with SQLite
git-svn-id: https://svn.roundcube.net/trunk@70 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program/include')
-rwxr-xr-xroundcubemail/program/include/rcube_db.inc12
-rwxr-xr-xroundcubemail/program/include/rcube_mdb2.inc47
2 files changed, 45 insertions, 14 deletions
diff --git a/roundcubemail/program/include/rcube_db.inc b/roundcubemail/program/include/rcube_db.inc
index a987d2e84..684ed49b9 100755
--- a/roundcubemail/program/include/rcube_db.inc
+++ b/roundcubemail/program/include/rcube_db.inc
@@ -139,7 +139,7 @@ class rcube_db
$result = $this->db_handle->limitQuery($query,$offset,$numrows,$params);
}
else
- $result = $this->db_handle->query($query,$params);
+ $result = $this->db_handle->query($query, $params);
if (DB::isError($result))
{
@@ -147,7 +147,7 @@ class rcube_db
'type' => 'db',
'line' => __LINE__,
'file' => __FILE__,
- 'message' => $result->getMessage()), TRUE, FALSE);
+ 'message' => $result->getMessage().'; QUERY: '.$query), TRUE, FALSE);
return false;
}
@@ -292,11 +292,9 @@ class rcube_db
{
if (!is_string($query))
return ($query);
-
- $search = array('/NOW\(\)/',
- '/`/');
- $replace = array("datetime('now')",
- '"');
+
+ $search = array('/NOW\(\)/i', '/`/');
+ $replace = array("datetime('now')", '"');
$query = preg_replace($search, $replace, $query);
return ($query);
diff --git a/roundcubemail/program/include/rcube_mdb2.inc b/roundcubemail/program/include/rcube_mdb2.inc
index 4637bede9..f87a9c029 100755
--- a/roundcubemail/program/include/rcube_mdb2.inc
+++ b/roundcubemail/program/include/rcube_mdb2.inc
@@ -104,21 +104,37 @@ class rcube_db
// Query database
function query()
+
{
+
$params = func_get_args();
+
$query = array_shift($params);
+
+
return $this->_query($query, 0, 0, $params);
+
}
+
+
function limitquery()
+
{
+
$params = func_get_args();
+
$query = array_shift($params);
+
$offset = array_shift($params);
+
$numrows = array_shift($params);
+
+
return $this->_query($query, $offset, $numrows, $params);
+
}
function _query($query, $offset, $numrows, $params)
@@ -133,12 +149,15 @@ class rcube_db
if ($this->db_provider == 'sqlite')
$query = $this->_sqlite_prepare_query($query);
-
+
$this->db_handle->row_offset = $offset;
$this->db_handle->row_limit = $numrows;
-
+
$result = $this->db_handle->query($query,$params);
-
+ //$q = $this->db_handle->prepare($query);
+ //$q->bindParamArray($params);
+ //$result = $q->execute();
+
if (PEAR::isError($result))
raise_error(array('code' => 500,
'type' => 'db',
@@ -194,23 +213,39 @@ class rcube_db
}
function quoteIdentifier ( $str )
+
{
+
if (!$this->db_handle)
+
$this->db_connect('r');
+
+
return $this->db_handle->quoteIdentifier($str);
+
}
function unixtimestamp($field)
+
{
+
switch($this->db_provider)
+
{
+
case 'pgsql':
+
return "EXTRACT (EPOCH FROM $field)";
+
break;
+
default:
+
return "UNIX_TIMESTAMP($field)";
+
}
+
}
function _add_result($res, $query)
@@ -266,10 +301,8 @@ class rcube_db
if (!is_string($query))
return ($query);
- $search = array('/NOW\(\)/',
- '/`/');
- $replace = array("datetime('now')",
- '"');
+ $search = array('/NOW\(\)/i', '/`/');
+ $replace = array("datetime('now')", '"');
$query = preg_replace($search, $replace, $query);
return ($query);