我正在尝试通过检测用户的用户ID来登录用户。 “profile_fbuid”是我创建的(隐藏)配置文件字段,用于登录具有相应facebook用户ID的用户。 当用户尝试使用Facebook登录时,我会检测到他/她的Facebook用户ID,但是当我尝试与相应的Drupal用户匹配时,此行不起作用:
$user_exists = user_load(array('profile_fbuid'=>$fbuserid));
我收到此错误:用户警告:未知列'profile_fbuid'
我知道错误的含义,但我不知道如何使用用户个人资料字段搜索用户。
感谢您的帮助!
答案 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 id
和field_profile_fbuid_value
,其中包含值(Facebook UID)。