加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PDO PHP在BetweenPlaceholders中添加“AND”

发布时间:2020-12-13 21:46:03 所属栏目:PHP教程 来源:网络整理
导读:我想在我的SQL查询的键和值对参数之间添加“AND”,但我不知道如何.我试过搜索网但无法找到解决方案. $cdatahome = fetchCategory(array("status"="1","home"="1")); function fetchCategory(array $conditions){ $db = Core::getInstance(); $sql = "SELECT
我想在我的SQL查询的键和值对参数之间添加“AND”,但我不知道如何.我试过搜索网但无法找到解决方案.

$cdatahome = fetchCategory(array("status"=>"1","home"=>"1")); 

       function fetchCategory(array $conditions){
        $db = Core::getInstance();

            $sql = "SELECT id,title FROM ruj_category WHERE ";

            $params = array();
            foreach ($conditions as $column => $value) {
            if (preg_match('/^[a-z-.]+$/',$column)) {

            $sql .= "$column = ?";
            $params[] = $value;

     }
    }           
            $sql .= " order by title asc";  
            $res = $db->dbh->prepare($sql);
            $res->execute(array_values($params));
                $res = $res->fetchAll(PDO::FETCH_ASSOC);        

            return $res;

解决方法

$cdatahome = fetchCategory(array("status"=>"1","home"=>"1")); 

   function fetchCategory(array $conditions){
    $db = Core::getInstance();

        $sql = "SELECT id,title FROM ruj_category WHERE ";

        $params = array();
        $i = 0;
        foreach ($conditions as $column => $value) {
        if (preg_match('/^[a-z-.]+$/',$column)) {
        if($i != 0){
        $sql .= ' AND ';
        }
        $sql .= "$column = ?";
        $params[] = $value;
        $i++;
 }
}           
        $sql .= " order by title asc";  
        $res = $db->dbh->prepare($sql);
        $res->execute(array_values($params));
            $res = $res->fetchAll(PDO::FETCH_ASSOC);        

        return $res;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读