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

Bedakan antara 'tidak ada baris yang terpengaruh' dan baris yang berhasil DIPERBARUI--ke nilai yang sama (MySQL dan PHP)

Solusi sederhana adalah dua pertanyaan.

Pertama, jalankan kueri SELECT untuk memeriksa apakah baris tersebut ada menggunakan mysqli_num_rows().

Kemudian, jika baris tersebut ada, Anda dapat menjalankan kueri UPDATE dan menggunakan mysqli_affected_rows().

[EDIT]

...Saya akan menyarankan alternatif potensial bagi siapa saja yang mencari satu panggilan. Saya tidak tahu apakah Anda tertarik untuk melakukan INSERT, atau murni UPDATE. Di bawah ini adalah beberapa bahan untuk dipikirkan:

Dari komentar teratas @ http://php.net/manual/en/ mysqli.affected-rows.php :

Pada kueri "INSERT INTO ON DUPLICATE KEY UPDATE", meskipun orang mungkin mengharapkan terpengaruh_rows untuk mengembalikan hanya 0 atau 1 per baris pada kueri yang berhasil, itu mungkin sebenarnya mengembalikan 2.

Dari manual Mysql:"Dengan ON DUPLICATE KEY UPDATE, nilai baris yang terpengaruh per baris adalah 1 jika baris dimasukkan sebagai baris baru dan 2 jika baris yang ada diperbarui."

Lihat:http://dev.mysql.com /doc/refman/5.0/en/insert-on-duplicate.html

Berikut rincian jumlah per baris :

+0:​​baris tidak diperbarui atau disisipkan (kemungkinan karena baris sudah ada, tetapi tidak ada nilai bidang yang benar-benar diubah selama PEMBARUAN)

+1:satu baris dimasukkan

+2:satu baris telah diperbarui

Bisakah Anda membuatnya sesuai dengan kebutuhan Anda?




  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 memilih baris data pertama dan terakhir dari hasil mysql?

  2. Menambahkan teks ke database

  3. Cara mencari nilai yang dipisahkan koma

  4. Bagaimana cara menggunakan DATETIME sebagai DATE di mysql?

  5. Layar tidak dapat terhubung ke mySql