【发布时间】:2018-01-06 04:40:00
【问题描述】:
我已经建立了一个登录系统,我可以使用他们的用户名或电子邮件地址检查用户是否存在。
这是我的代码:
// DB Connection Included
$q = $dbcon->prepare("SELECT * FROM table WHERE (username=:e OR email=:e)");
$q->execute(array('e'=>$user));
但它不起作用。如果我将查询更改为:
$q = $dbcon->prepare("SELECT * FROM table WHERE username=:e)");
或
$q = $dbcon->prepare("SELECT * FROM table WHERE email=:e)");
我以前使用过这段代码,它一直运行良好,所以我不确定为什么这次它不起作用。
我得到的实际错误是我的代码中的验证错误。我使用 rowCount() 函数检查用户是否存在;使用所需的查询,rowCount() 返回 0。
我也试过了:
$q = $dbcon->prepare("SET @user = :user SELECT * FROM table WHERE (username=@user OR email=@user)");
这是我在 Google 上找到的另一篇文章中建议的,但这也没有用。
有人有什么建议吗?
提前致谢。
【问题讨论】:
-
where 子句不需要括号