PDOStatement::execute()
将所有传递的数组值视为字符串
PDO::PARAM_STR
,而您的
LIMIT ?,?
需要为整数的值
PDO::PARAM_INT
.
你可能需要使用
PDOStatement::bindParam()
具有
PDO::PARAM\u INT
相反
此外,您可以在循环外执行一次,因为变量是通过引用绑定的:
$sql->bindParam(1, $chart, PDO::PARAM_INT); // or whatever it is
$sql->bindParam(2, $offset, PDO::PARAM_INT);
$sql->bindParam(3, $aggregate, PDO::PARAM_INT);
while ($offset < $count)
{
$sql->execute();
$data = $sql->fetch(PDO::FETCH_ASSOC);
array_push($aggregatedData, $data["MinVal"], $data["MaxVal"]);
$offset += $aggregate;
}