PDOが引用符を使用してint値をカプセル化し、その後クエリが失敗するという問題があります。挿入値の配列を使用してPDO :: PARAM_INTを渡す際の問題
これはコード(ラッパー関数を使用して)
$newest = query("SELECT id, body, upvotes, downvotes
FROM suggestions ORDER BY timestamp DESC LIMIT :min, :max",
array(
':min' => $min,
':max' => $max
)
);
であり、これはエラーが発生した不正なクエリである(LIMIT
値の前後に引用符に注意してください)
SELECT id, body, upvotes, downvotes FROM suggestions ORDER BY timestamp DESC LIMIT '0' , '50'
私は」値の配列を渡します:
array(
':min' => $min,
':max' => $max
)
これらはどちらもINTです。インターネット上で読んでください。PDOは自動的にそれを見つけて、それをバインドするときにはPDO::PARAM_INT
を使います。問題はそれが実際には起こらないということです。それらを渡す私の唯一の方法は、を使わずにPDO::PARAM_INT
になるように強制する方法があるかどうかを尋ねたいと思います。
ありがとうございます。
bindParamを使用することができ、あなたのラッパーで第三のparamを追加しますか? – dynamic
ラッパー関数を使用しているため、ラッパー関数は配列のみを許可するためです –
この標準のPDOクラスのみを使用すると問題がありますか? (それはベストアイデアではありません) – dynamic