prepare()
execute()
. के साथ जाता है
तैयार बयान मूल रूप से इस तरह काम करते हैं:
-
तैयार करें:एक SQL स्टेटमेंट टेम्प्लेट बनाया जाता है और डेटाबेस को भेजा जाता है। कुछ मान अनिर्दिष्ट छोड़ दिए जाते हैं, जिन्हें पैरामीटर (लेबल "?") कहा जाता है। उदाहरण:
INSERT INTO mtTable VALUES(?, ?, ?)
-
डेटाबेस SQL स्टेटमेंट टेम्प्लेट पर क्वेरी ऑप्टिमाइज़ेशन को पार्स, संकलित और निष्पादित करता है, और परिणाम को निष्पादित किए बिना संग्रहीत करता है
-
निष्पादित करें:बाद के समय में, एप्लिकेशन मानों को मापदंडों से बांधता है, और डेटाबेस कथन को निष्पादित करता है। एप्लिकेशन स्टेटमेंट को जितनी बार चाहे उतनी बार अलग-अलग वैल्यू के साथ निष्पादित कर सकता है
नीचे दिए गए कोड के साथ प्रयास करें
<?php
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$rowperpage = 3;
$offset = 0;
// counting total number of posts
$query = "SELECT count(id) AS allcount FROM posts";
$stmt = $db->query($query)->fetchColumn();
/******** The ABOVE QUERY LOOKS POINTLESS TO ME AS YOU NOT USING THE RESULTS FROM THAT QUERY*/
// select first 3 posts
$qry = "SELECT * FROM posts ORDER BY id ASC LIMIT ?,? ";
$stm = $db->prepare($qry);
$stm->execute(array($offset,$rowperpage));
$results = $stm->fetchall(PDO::FETCH_ASSOC);
if (count($results) > 0) {
foreach ($results as $row) {
$id = $row['id'];
$title = $row['title'];
$content = $row['content'];
$shortcontent = substr($content, 0, 160) . "...";
$link = $row['link'];
}
} else {
echo "No records found";
}
?>