首页 > 解决方案 > 如何使用 SELECT 请求获取数据

问题描述

我正在尝试在我的数据库中显示运营商的统计数据。当我调用该函数但我收到如下错误:

class: "Doctrine\DBAL\Exception\SyntaxErrorException"
message: "An exception occurred while executing 'select count(cod_ser) TOTAL FROM public.tiers_datamart period =06-2019':↵↵SQLSTATE[42601]:

我的代码是这样的:

public function getTotalDatabyMonth($date, $type, $filtre) {
        $em = $this->getDoctrine()->getManager('dbStat')->getConnection();
        if($filtre == null) {
            $restriction = "period =".$date;
        }else {
            $restriction = $type." = ".$filtre." AND period = ".$date;
        }
        $rawSql = "select count(".$type.") TOTAL FROM public.tiers_datamart ".$restriction;        
        $stmt = $em->prepare($rawSql);
        $stmt->execute();   
        $result = $stmt->fetchAll();    
        return intval($result[0]['total']);
    }

    public function getTotalDatabyMonths($dates, $type, $filtre) {
        $totalDatas = [];
        foreach($dates as $date){
            $total = $this->getTotalDatabyMonth($date, $type, $filtre);
            array_push($totalDatas, $total);
        }
        return $totalDatas;
    }

我通过调用函数'data'=> $this->getTotalDatabyMonths($dataFormats[1], "cod_ser", $restriction)

我尝试在方法中替换$filtreby ,但它返回相同的值 12 次。$restrictiongetTotalDatabyMonths()

标签: phpsqlsymfony

解决方案


$rawSql = "select count(".$type.") TOTAL FROM public.tiers_datamart WHERE ".$restriction;

添加 WHERE,您就可以开始了。


推荐阅读