[英]Multiple WHERE clause to SQL statement
我尝试了不同的方法,但仍然无法正常工作。 下面的代码有效,但我需要添加另一个 where 子句。 如何向我的 SQL 查询添加更多 WHERE 子句?
public function getuserAcct(){
$user_id = $this->param['user_id'];
$meter = $this->param['meter'];
$phone = $this->param['phone'];
$stmt=$this->dbConn->prepare("SELECT * FROM Monify Where user_id=".$user_id);
$stmt->execute();
$response=$stmt->fetch(PDO::FETCH_ASSOC);
if($response || $response == 0)
{
$this->returnResponse(SUCCESS_RESPONSE,$response);
}
else
{
$this->returnResponse(ERROR,$response);
}
}
您正在滥用准备好的语句,所有值都应作为占位符和execute
方法中的边界传递。 或者可以使用bindparam
或bindvalue
,有关这些用法的示例,请查阅手册。
$stmt=$this->dbConn->prepare("SELECT * FROM Monify Where user_id= ?");
$stmt->execute(array($user_id));
要在WHERE
子句中包含多个部分,您只需要使用OR
或AND
运算符。 例如,要检查用户 ID 和电话号码,您可以执行以下操作:
$stmt=$this->dbConn->prepare("SELECT * FROM Monify Where user_id= ? AND phone=?");
$stmt->execute(array($user_id, $phone));
或者如果任一字段是可选的,
$stmt=$this->dbConn->prepare("SELECT * FROM Monify Where user_id= ? OR phone=?");
$stmt->execute(array($user_id, $phone));
所有这些数据都可以在MYSQL 手册中找到。
WHERE 子句,如果给定,则表示要选择行必须满足的一个或多个条件....在 WHERE 表达式中,您可以使用 MySQL 支持的任何函数和运算符,聚合(汇总)函数除外。 请参见第 9.5 节“表达式”和第 12 章函数和运算符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.