これが私のコードのスナップショットです:
$fetchPictures = $PDO->prepare("SELECT *
FROM pictures
WHERE album = :albumId
ORDER BY id ASC
LIMIT :skip, :max");
$fetchPictures->bindValue(':albumId', $_GET['albumid'], PDO::PARAM_INT);
if(isset($_GET['skip'])) {
$fetchPictures->bindValue(':skip', trim($_GET['skip']), PDO::PARAM_INT);
} else {
$fetchPictures->bindValue(':skip', 0, PDO::PARAM_INT);
}
$fetchPictures->bindValue(':max', $max, PDO::PARAM_INT);
$fetchPictures->execute() or die(print_r($fetchPictures->errorInfo()));
$pictures = $fetchPictures->fetchAll(PDO::FETCH_ASSOC);
私は得る
SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで、1行目の '' 15 '、15'付近で使用する正しい構文を確認してください
PDOがSQLコードのLIMIT部分の変数に単一引用符を追加しているようです。私はそれを調べたところ、関連していると思われるこのバグを見つけました:http : //bugs.php.net/bug.php?id=44639
それは私が見ているものですか?このバグは2008年4月からオープンしています。その間、私たちは何をすべきか?
SQL文を送信する前に、ページ分割を作成し、データがクリーンでSQLインジェクションセーフであることを確認する必要があります。