यहाँ मेरे कोड का एक स्नैपशॉट है:
$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 सिंटैक्स में कोई त्रुटि है; सही लाइन पर '' 15 ', 15' के पास उपयोग करने के लिए अपने MySQL सर्वर संस्करण से मेल खाने वाले मैनुअल की जाँच करें 1
ऐसा लगता है कि पीडीओ SQL कोड के लिमिट भाग में मेरे चरों में एकल उद्धरण जोड़ रहा है। मैंने इसे देखा मैंने पाया कि यह बग जो मुझे लगता है कि संबंधित है: http://bugs.php.net/bug.php?id/44339
कि मैं क्या देख रहा हूँ? यह बग अप्रैल 2008 से खोला गया है! इस बीच हम क्या करने वाले हैं?
मुझे कुछ पेजिनेशन बनाने की जरूरत है, और यह सुनिश्चित करने की आवश्यकता है कि एसक्यूएल स्टेटमेंट भेजने से पहले डेटा साफ, sql injection-safe हो।