php中的用户名、电子邮件或电话号码登录系统
我想建立在PHP登录系统,如果用户输入用户名或电子邮件或电话号码和密码,然后用户登录成功 wp_users表中的字段用户名电子邮件和密码 电话号码是wp_元用户表 如果用户输入电话号码,则匹配php中的用户名、电子邮件或电话号码登录系统,php,Php,我想建立在PHP登录系统,如果用户输入用户名或电子邮件或电话号码和密码,然后用户登录成功 wp_users表中的字段用户名电子邮件和密码 电话号码是wp_元用户表 如果用户输入电话号码,则匹配meta\u key=phone\u no和meta\u value=674637388273 field value comments table OR email =674637388273
meta\u key=phone\u no
和meta\u value=674637388273
field value comments table
OR email =674637388273 wp_users
OR username =674637388273 wp_users
OR meta_value =674637388273 if phone no then wp_metauser
And meta_value = 'phone_no' //is string wp_metauser
AND Password =******** wp_users
我有一个查询,但显示错误
$query = "select * from wp_users where ( user_login='$email' OR user_email = '$email' OR 'select * from wp_usermeta where meta_key='phone_no' and meta_value='$email'') and user_pass='$password'";
请参见内部联接的示例
你写的问题是错误的 因为您不能有select in where子句 试着用这个代替
select a.*
from wp_users a
join wp_usermeta b
where (a.user_login='$email' OR a.user_email = '$email' OR (b.meta_key='phone_no' and b.meta_value='$email')) and a.user_pass='$password';
你应该告诉我们错误是什么。乍一看,
“$email”
是错误的。您还应该了解表联接。
select a.*
from wp_users a
join wp_usermeta b
where (a.user_login='$email' OR a.user_email = '$email' OR (b.meta_key='phone_no' and b.meta_value='$email')) and a.user_pass='$password';