Changeset ba0e787 in github


Ignore:
Timestamp:
Aug 7, 2008 4:52:22 AM (5 years ago)
Author:
thomascube <thomas@…>
Branches:
master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.6, release-0.7, release-0.8
Children:
d4f2648
Parents:
e3fdcf5
Message:

Separate queries to make use of the database indexes; with OR no index is used

File:
1 edited

Legend:

Unmodified
Added
Removed
  • program/include/rcube_user.php

    r2864204 rba0e787  
    327327    $dbh = rcmail::get_instance()->get_dbh(); 
    328328     
    329     // query if user already registered 
    330     $sql_result = $dbh->query( 
    331       "SELECT * FROM ".get_table_name('users')." 
    332        WHERE  mail_host=? AND (username=? OR alias=?)", 
    333       $host, 
    334       $user, 
    335       $user); 
    336        
     329    // query for matching user name 
     330    $query = "SELECT * FROM ".get_table_name('users')." WHERE mail_host=? AND %s=?"; 
     331    $sql_result = $dbh->query(sprintf($query, 'username'), $host, $user); 
     332     
     333    // query for matching alias 
     334    if (!($sql_arr = $dbh->fetch_assoc($sql_result))) { 
     335      $sql_result = $dbh->query(sprintf($query, 'alias'), $host, $user); 
     336      $sql_arr = $dbh->fetch_assoc($sql_result); 
     337    } 
     338     
    337339    // user already registered -> overwrite username 
    338     if ($sql_arr = $dbh->fetch_assoc($sql_result)) 
     340    if ($sql_arr) 
    339341      return new rcube_user($sql_arr['user_id'], $sql_arr); 
    340342    else 
Note: See TracChangeset for help on using the changeset viewer.