summaryrefslogtreecommitdiff
path: root/modules/user/user.module
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2005-12-31 11:50:47 +0000
committerDries Buytaert <dries@buytaert.net>2005-12-31 11:50:47 +0000
commit89e89a3b9bdd12fa5bb78584aacfa0a632ebdb84 (patch)
tree8afc7dc9a17fa993b761d4401652f885d7df3f6b /modules/user/user.module
parent799ceae29bde6989a6aac39581047161b7954ad2 (diff)
downloadbrdo-89e89a3b9bdd12fa5bb78584aacfa0a632ebdb84.tar.gz
brdo-89e89a3b9bdd12fa5bb78584aacfa0a632ebdb84.tar.bz2
- Patch 42115 by Cvbge/ m3avrck: improved performance of session loading.
Diffstat (limited to 'modules/user/user.module')
-rw-r--r--modules/user/user.module20
1 files changed, 10 insertions, 10 deletions
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);