summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c>2007-03-13 22:53:26 +0000
committerthomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c>2007-03-13 22:53:26 +0000
commit93dcbe6ed9f99e2af8195e7ee85fcbd6ee0e247c (patch)
tree37604e3e6d92b0773d969869fe892dbec305d617
parentce6713014beec6fb2645ad3d05add7a496b1bbae (diff)
Fixed bugs in rcube_db and rcube_imap classes
git-svn-id: https://svn.roundcube.net/trunk@504 208e9e7b-5314-0410-a742-e7e81cd9613c
-rwxr-xr-xroundcubemail/program/include/rcube_db.inc14
-rw-r--r--roundcubemail/program/include/rcube_imap.inc3
2 files changed, 10 insertions, 7 deletions
diff --git a/roundcubemail/program/include/rcube_db.inc b/roundcubemail/program/include/rcube_db.inc
index a01b38dd6..f17605a74 100755
--- a/roundcubemail/program/include/rcube_db.inc
+++ b/roundcubemail/program/include/rcube_db.inc
@@ -293,14 +293,16 @@ class rcube_db
{
case 'pgsql':
$result = &$this->db_handle->getOne("SELECT CURRVAL('$sequence')");
-
- case 'mssql':
- $result = &$this->db_handle->getOne("SELECT @@IDENTITY");
-
if (DB::isError($result))
raise_error(array('code' => 500, 'type' => 'db', 'line' => __LINE__, 'file' => __FILE__,
'message' => $result->getMessage()), TRUE, FALSE);
+ return $result;
+ case 'mssql':
+ $result = &$this->db_handle->getOne("SELECT @@IDENTITY");
+ if (DB::isError($result))
+ raise_error(array('code' => 500, 'type' => 'db', 'line' => __LINE__, 'file' => __FILE__,
+ 'message' => $result->getMessage()), TRUE, FALSE);
return $result;
case 'mysql': // This is unfortuneate
@@ -308,7 +310,7 @@ class rcube_db
case 'mysqli':
return mysqli_insert_id($this->db_handle->connection);
-
+
case 'sqlite':
return sqlite_last_insert_rowid($this->db_handle->connection);
@@ -358,7 +360,7 @@ class rcube_db
*/
function _fetch_row($result, $mode)
{
- if (DB::isError($result))
+ if (!$result || DB::isError($result))
{
raise_error(array('code' => 500, 'type' => 'db', 'line' => __LINE__, 'file' => __FILE__,
'message' => $this->db_link->getMessage()), TRUE, FALSE);
diff --git a/roundcubemail/program/include/rcube_imap.inc b/roundcubemail/program/include/rcube_imap.inc
index 9e1fc8cab..9f249d57b 100644
--- a/roundcubemail/program/include/rcube_imap.inc
+++ b/roundcubemail/program/include/rcube_imap.inc
@@ -878,7 +878,8 @@ class rcube_imap
{
$results = array();
foreach ($criteria as $crit)
- $results = array_merge($results, $this->search($mbox_name, $crit, $str, $charset));
+ if ($search_result = $this->search($mbox_name, $crit, $str, $charset))
+ $results = array_merge($results, $search_result);
$results = array_unique($results);
$this->set_search_set($criteria, $str, $results, $charset);