[当我运行PHP代码时,根据我放入MySQL查询的过滤器,我的JSON不返回任何内容(如果我在数据库中执行相同的查询,则会带来结果)。有人能帮我吗?遵循PHP中的代码:
<?php
$datefrom = '2020-03-01';
$dateto = '2020-03-20';
$family = 'S145';
$dataPointsWorkmanship = array();
try {
$link = new \PDO('mysql:host=10.33.59.101;dbname=quality;charset=utf8mb4', //'mysql:host=localhost;dbname=canvasjs_db;charset=utf8mb4',
'root', //'root',
'!QAZxsw2', //'',
array(
\PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
\PDO::ATTR_PERSISTENT => false
)
);
$handle = $link->prepare("SELECT
COUNT(*) AS y, defect_desc AS x
FROM
quality.quality_metrics qm
WHERE
qm.defect_type = 'WORKMANSHIP'
AND qm.data_producao BETWEEN '" . $datefrom . "' AND '" . $dateto . "'
AND qm.familia = '" . $family . "'
GROUP BY x;");
$handle->execute();
$result = $handle->fetchAll(\PDO::FETCH_OBJ);
foreach ($result as $row) {
array_push($dataPointsWorkmanship, array("label" => $row->x, "y" => $row->y)); //$row->y));
}
//$link = null;
} catch (\PDOException $ex) {
print($ex->getMessage());
}
echo json_encode($dataPointsWorkmanship, JSON_NUMERIC_CHECK);
?>
因此,如果family变量是“ S145”,我的json不返回任何内容,但是例如,如果它是“ T480”,则它返回我需要构建图表的json。
当json_encode失败时,它返回FALSE,并且您可以使用此函数读取错误
https://www.php.net/manual/en/function.json-last-error-msg.php