SQL语句的多个WHERE子句

问题描述 投票:-1回答:1

我尝试了其他方法,但仍然无法正常工作。下面的代码有效,但是我需要添加另一个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);
    }
}
php sql pdo where-clause
1个回答
1
投票

您正在滥用准备好的语句,所有值都应作为占位符传递并在execute方法中进行绑定。或者,可以使用bindparambindparam,有关这些用法的示例,请参考手册。

bindvalue

要在bindvalue子句中包含多个部分,您只需要使用$stmt=$this->dbConn->prepare("SELECT * FROM Monify Where user_id= ?"); $stmt->execute(array($user_id)); WHERE运算符即可。例如,要检查用户名和电话号码,可以执行以下操作:

OR

或如果任一字段为可选,

AND

[所有这些数据在$stmt=$this->dbConn->prepare("SELECT * FROM Monify Where user_id= ? AND phone=?"); $stmt->execute(array($user_id, $phone)); 中可用。

WHERE子句,如果给出,则表明必须满足行才能被选择的条件。...在WHERE表达式中,您可以使用MySQL支持的任何函数和运算符,但聚合(摘要)函数除外。参见$stmt=$this->dbConn->prepare("SELECT * FROM Monify Where user_id= ? OR phone=?"); $stmt->execute(array($user_id, $phone)); MYSQL manual

© www.soinside.com 2019 - 2024. All rights reserved.