summaryrefslogtreecommitdiff
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
parent799ceae29bde6989a6aac39581047161b7954ad2 (diff)
downloadbrdo-89e89a3b9bdd12fa5bb78584aacfa0a632ebdb84.tar.gz
brdo-89e89a3b9bdd12fa5bb78584aacfa0a632ebdb84.tar.bz2
- Patch 42115 by Cvbge/ m3avrck: improved performance of session loading.
-rw-r--r--includes/session.inc2
-rw-r--r--modules/user.module20
-rw-r--r--modules/user/user.module20
3 files changed, 21 insertions, 21 deletions
diff --git a/includes/session.inc b/includes/session.inc
index b10a902e4..a28a9a571 100644
--- a/includes/session.inc
+++ b/includes/session.inc
@@ -19,7 +19,7 @@ function sess_close() {
function sess_read($key) {
global $user;
- $result = db_query_range("SELECT u.*, s.* FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.sid = '%s' AND u.status < 3", $key, 0, 1);
+ $result = db_query("SELECT u.*, s.* FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.sid = '%s'", $key);
if (!db_num_rows($result)) {
db_query("INSERT INTO {sessions} (sid, uid, hostname, timestamp) VALUES ('%s', 0, '%s', %d)", $key, $_SERVER["REMOTE_ADDR"], time());
diff --git a/modules/user.module b/modules/user.module
index 6d90de404..0f933190e 100644
--- a/modules/user.module
+++ b/modules/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);
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);