sql >> Database teknologi >  >> RDS >> Mysql

Sådan henter du 2 gange i MYSQL PDO uden FETCHALL

Jeg synes, det ser ud til, at du kan bruge markørens orienteringskontanter til at vælge resultatet... eksempelkode kommer... Jeg har ikke prøvet dette, så du skal muligvis spille lidt. Dette er også baseret på den antagelse, at en PDO::FETCH_ORI_FIRST fungerer som en data_seek og efterlader markøren på den første position i modsætning til at returnere den til, hvad den var før.

$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;
}

Jeg tror ikke, du kan spole en erklæring tilbage... Forudsat at disse blokke ikke er adskilt af en masse mellemliggende logiske id'er, gør det bare i løkken.

$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++;
}


  1. Hvordan ændrer jeg alle tabellerne i min database til UTF8-tegnsæt?

  2. Lær, hvordan du importerer Excel-data til en MySQL-database

  3. Giv alle på et specifikt skema i db'en til en grupperolle i PostgreSQL

  4. MySQL-syntaksfejl ved udførelse af SQL-forespørgsel