繁体   English   中英

SQL 语句的多个 WHERE 子句

[英]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方法中的边界传递。 或者可以使用bindparambindvalue ,有关这些用法的示例,请查阅手册。

$stmt=$this->dbConn->prepare("SELECT * FROM Monify Where user_id= ?");
$stmt->execute(array($user_id));

要在WHERE子句中包含多个部分,您只需要使用ORAND运算符。 例如,要检查用户 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM