Как получить данные с помощью запроса SELECT - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь отобразить статистику перевозчиков в моей базе данных. Когда я вызываю функцию, но получаю сообщение об ошибке:

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 голосов
/ 27 июня 2019

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

Добавьте ГДЕ, и все готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...