我正在尝试在数据库中显示运营商的统计信息。当我调用函数但出现错误:
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次。
答案 0 :(得分:0)
$rawSql = "select count(".$type.") TOTAL FROM public.tiers_datamart WHERE ".$restriction;
添加WHERE,您就可以开始了。