From 89e89a3b9bdd12fa5bb78584aacfa0a632ebdb84 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Sat, 31 Dec 2005 11:50:47 +0000 Subject: - Patch 42115 by Cvbge/ m3avrck: improved performance of session loading. --- modules/user/user.module | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'modules/user/user.module') diff --git a/modules/user/user.module b/modules/user/user.module index 6d90de404..0f933190e 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -44,24 +44,24 @@ function user_external_load($authname) { */ function user_load($array = array()) { // Dynamically compose a SQL query: - $query = ''; - + $query = array(); $params = array(); + foreach ($array as $key => $value) { - if ($key == 'pass') { - $query .= "u.pass = '%s' AND "; - $params[] = md5($value); - } - else if ($key == 'uid') { - $query .= "u.uid = %d AND "; + if ($key == 'uid' || $key == 'status') { + $query[] = "$key = %d"; $params[] = $value; } + else if ($key == 'pass') { + $query[] = "pass = '%s'"; + $params[] = md5($value); + } else { - $query .= "LOWER(u.$key) = LOWER('%s') AND "; + $query[]= "LOWER($key) = LOWER('%s')"; $params[] = $value; } } - $result = db_query_range("SELECT u.* FROM {users} u WHERE $query u.status < 3", $params, 0, 1); + $result = db_query('SELECT * FROM {users} u WHERE ' . implode(' AND ', $query), $params); if (db_num_rows($result)) { $user = db_fetch_object($result); -- cgit v1.2.3