user_load
- Versions
- 4.6 – 6
user_load($array= array())- 7
user_load($uid, $reset = FALSE)
Fetch a user object.
Parameters
$array An associative array of attributes to search for in selecting the user, such as user name or email address.
Return value
A fully-loaded $user object.
Code
modules/user.module, line 44
<?php
function user_load($array = array()) {
// Dynamically compose a SQL query:
$query = '';
$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 ";
$params[] = $value;
}
else {
$query .= "LOWER(u.$key) = '%s' AND ";
$params[] = strtolower($value);
}
}
$result = db_query_range("SELECT u.* FROM {users} u WHERE $query u.status < 3", $params, 0, 1);
if (db_num_rows($result)) {
$user = db_fetch_object($result);
$user = drupal_unpack($user);
$user->roles = array();
$result = db_query('SELECT r.rid, r.name FROM {role} r INNER JOIN {users_roles} ur ON ur.rid = r.rid WHERE ur.uid = %d', $user->uid);
while ($role = db_fetch_object($result)) {
$user->roles[$role->rid] = $role->name;
}
user_module_invoke('load', $array, $user);
}
else {
$user = new StdClass();
}
return $user;
}
?>Login or register to post comments 