4

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();ますか?

4

1 に答える 1