thomascube
2007-03-13 e6c7c3ca9381aa10f7147544cd93f6179d32f359
Fixed bugs in rcube_db and rcube_imap classes

2 files modified
17 ■■■■■ changed files
program/include/rcube_db.inc 14 ●●●●● patch | view | raw | blame | history
program/include/rcube_imap.inc 3 ●●●● patch | view | raw | blame | history
program/include/rcube_db.inc
@@ -293,14 +293,16 @@
      {
      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 @@
      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 @@
   */
  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);
program/include/rcube_imap.inc
@@ -878,7 +878,8 @@
      {
      $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);