如何在LIMIT子句中应用bindValue方法?
这是我的代码的快照:
$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
这就是我在看的东西吗?这个bug自2008年4月开始!在此期间我们应该做什么?
我需要构建一些分页,并且需要在发送sql语句之前确保数据是干净的,sql注入安全的。
浮云间
紫衣仙女