मैं इसे वापस लेता हूं ऐसा लगता है कि आप परिणाम का चयन करने के लिए कर्सर अभिविन्यास सामग्री का उपयोग कर सकते हैं ... नमूना कोड आ रहा है ... मैंने यह कोशिश नहीं की है, इसलिए आपको थोड़ा सा खेलना पड़ सकता है। यह इस धारणा पर भी आधारित है कि एक PDO::FETCH_ORI_FIRST
data_seek की तरह काम करता है और कर्सर को पहले वाले स्थान पर लौटाने के बजाय पहले स्थान पर छोड़ देता है।
$stmt = $pdo->prepare('SELECT id FROM table', array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
$stmt->execute();
$first = $pdo->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_FIRST);
$first_row = $first['id'];
// other stuff
// first iteration we rewind to the first record;
$cursor = PDO::FETCH_ORI_FIRST;
while (false !== ($row = $stmt->fetch(PDO::FETCH_ASSOC, $cursor))) {
$id = $row['id'];
// successive iterations we hit the "next" record
$cursor = PDO::FETCH_ORI_NEXT;
echo $id;
}
मुझे नहीं लगता कि आप किसी कथन को रिवाइंड कर सकते हैं... मान लें कि इन ब्लॉकों को मध्यस्थ तर्क आईडी के एक समूह द्वारा अलग नहीं किया गया है, बस इसे लूप में करें।
$STH->setFetchMode(PDO::FETCH_COLUMN); // no need to pull an array
$count = 0;
while ($id = $STH->fetch()) {
if($count === 0) {
$first_row = $id;
}
echo $id;
$count++;
}