我有一个模块,我尝试创建一些用户。
$newUser = array(
'name' => "Bob",
'pass' => "pass",
'mail' => "a@a.com",
'status' => 1,
'init' => "a@a.com"
);
$newUserObject = user_save(null, $newUser1);
如果一个用户已经准备好使用相同的邮件地址创建,我没有得到 false ,我得到了所有准备好的用户对象。有什么方法可以让我告诉用户已经准备就绪。
答案 0 :(得分:4)
在尝试创建用户之前,您可以尝试使用电子邮件地址调用user_load,以查看它是否返回用户对象。这是一个例子(borrowed from here):
//search by email
$account = user_load(array('mail' => check_plain($email)));
if ($account->uid) {
//user found
} else {
//user NOT found
}
答案 1 :(得分:0)
您可以在创建用户之前尝试搜索用户。假设drupal 6:
user_search('search', {email}, TRUE);
或者直接查询并查看查询是否返回FALSE
。
db_result(db_query('SELECT name FROM {users} WHERE LOWER(mail) = LOWER('%s'), $email));
http://api.drupal.org/api/drupal/modules--user--user.module/function/user_search/6
答案 2 :(得分:0)
要在drupal 7中执行此操作,您需要使用不同的功能,如下所示。
//search by email
$account = user_load_by_mail(check_plain($old_user['email_address']));
if ($account->uid) {
//user found
} else {
//user NOT found
}
因为this是D7的功能