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

periksa entri duplikat vs gunakan hasil errorInfo PDO

Anda dapat menjalankan ini dengan blok try catch:

try {
   $prep->execute($values);
   // do other things if successfully inserted
} catch (PDOException $e) {
   if ($e->errorInfo[1] == 1062) {
      // duplicate entry, do something else
   } else {
      // an error other than duplicate entry occurred
   }
}

Anda juga dapat melihat alternatif seperti "INSERT IGNORE", dan "INSERT... ON DUPLICATE KEY UPDATE" - meskipun saya pikir itu khusus MySQL dan akan bertentangan dengan portabilitas menggunakan PDO, jika itu adalah sesuatu yang Anda khawatirkan .

Sunting:Untuk menjawab pertanyaan Anda secara lebih formal, bagi saya, solusi # 1 (programmer defensif) dalam penggunaan penuh secara efektif menghilangkan titik kendala unik sejak awal. Jadi saya setuju dengan pemikiran Anda untuk membiarkan MySQL menangani pemeriksaan data.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Saya membutuhkan halaman PHP saya untuk menampilkan gambar BLOB saya dari database mysql

  2. Cara Mengembalikan Bagian Kiri atau Kanan dari sebuah String di MySQL

  3. Bagaimana cara memilih dua kolom sebagai satu?

  4. Permintaan MySQL digantung dan harus mematikan prosesnya

  5. mysql pilih nilai baris dinamis sebagai nama kolom, kolom lain sebagai nilai