PDO は、準備された SQL ステートメントでバインドされたパラメーターに引用符を自動的に追加するようです。
結果の数を制限しようとしている場合、この機能は必要ありません。これは、mysql に対して整数として認識される必要があるためです。
function fixStatistics($metal, $currency, $months){
$db = connectPDO();
$sql = '
SELECT [COLUMN NAMES]
FROM [TABLE NAMES]
WHERE [WHERE STUFF]
GROUP BY `Month`
ORDER BY MONTH(DateStamp) LIMIT :numMonths
';
$stmt = $db->prepare($sql);
$stmt->execute(
array(
':metal' => $metal,
':currency' => $currency,
':numMonths' => $months // Problem Code
)
);
$statistics = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $statistics;
}
SQLステートメントを手動で挿入/連結することで、この問題を解決できます-私がやりたいことではありません。
ORDER BY MONTH(DateStamp) LIMIT ' . $numMonths
しかし、の時点で :numMonths を int に直接キャストする方法はあり$stmt->execute();
ますか?