user_load是否由用户个人资料字段?

时间:2012-04-01 17:58:19

标签: drupal drupal-6 user-profile

我正在尝试通过检测用户的用户ID来登录用户。 “profile_fbuid”是我创建的(隐藏)配置文件字段,用于登录具有相应facebook用户ID的用户。 当用户尝试使用Facebook登录时,我会检测到他/她的Facebook用户ID,但是当我尝试与相应的Drupal用户匹配时,此行不起作用:

    $user_exists = user_load(array('profile_fbuid'=>$fbuserid));

我收到此错误:用户警告:未知列'profile_fbuid'

我知道错误的含义,但我不知道如何使用用户个人资料字段搜索用户。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

users表中没有名为profile_fbuid的字段,因此我假设您使用用户个人资料模块生成了此字段。

我认为最好创建一个获取此列uid的查询,然后将其传递给user_load()函数。

$query = db_query("select `uid` from {table_name} where `profile_fbuid` = %d ",$fbuserid );

while($result = db_fetch_object($query)){
  $uid = $result->uid ; 
  $user_exists = user_load(array('uid'=>$uid));
}

答案 1 :(得分:0)

您创建了一个附加到名为profile_fbuid的用户个人资料的自定义字段。您要在数据库中执行的操作是查找此表:

field_data_field_profile_fbuid.

相关列为entity_id,即(Drupal)user idfield_profile_fbuid_value,其中包含值(Facebook UID)。