Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara mengambil 2 kali di MYSQL PDO tanpa FETCHALL

Saya mengambil kembali sepertinya Anda dapat menggunakan contants orientasi kursor untuk memilih hasil ... kode sampel datang ... Saya belum mencoba ini sehingga Anda mungkin perlu bermain sedikit. Ini juga didasarkan pada asumsi bahwa PDO::FETCH_ORI_FIRST bertindak seperti data_seek dan meninggalkan kursor di posisi pertama sebagai lawan mengembalikannya ke posisi sebelumnya.

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

Saya tidak berpikir Anda dapat memundurkan pernyataan... Dengan asumsi blok ini tidak dipisahkan oleh sekelompok logika perantara, lakukan saja dalam satu lingkaran.

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bagaimana cara memasukkan karakter unicode ke mysql dengan pernyataan insert?

  2. Masalah dengan Apache di Xampp setelah beberapa instalasi Apache

  3. Pembaruan bidang MySQL CURRENT_TIMESTAMP pada setiap pembaruan

  4. Cara menulis migrasi untuk mengubah kunci utama model dengan ManyToManyField

  5. Fungsi MySQL LOG() – Mengembalikan Logaritma Natural dari suatu Nilai