如何使用SELECT请求获取数据

时间:2019-06-27 16:56:15

标签: php sql symfony

我正在尝试在数据库中显示运营商的统计信息。当我调用函数但出现错误:

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)调用函数

我尝试在方法$filtre中将$restriction替换为getTotalDatabyMonths(),但它返回相同值12次。

1 个答案:

答案 0 :(得分:0)

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

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