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

Pernyataan yang Disiapkan dengan ON DUPLICATE KEY

Cara termudah untuk menggunakan INSERT...ON DUPLICATE KEY UPDATE adalah dengan menggunakan klausa VALUES dengan cara berikut, jadi Anda tidak perlu mengulang parameter dalam klausa UPDATE. Mereka hanya menggunakan nilai yang sama untuk setiap kolom yang Anda teruskan di klausa VALUES:

if($stmt = $mysqli -> prepare("
    INSERT INTO user_info (city, state, website, public_contact, 
        user, zipcode, pic, emailme)
    VALUES (?, ?, ?, ?, ?, ?, ?, ?) 
    ON DUPLICATE KEY UPDATE
        city = VALUES(city),
        state = VALUES(state),
        website = VALUES(website),
        public_contact = VALUES(public_contact),
        user = VALUES(user),
        zipcode = VALUES(zipcode),
        pic = VALUES(pic),
        emailme = VALUES(emailme)") {
    $stmt -> bind_param("sssssssi",$city, $state, $website, $public_contact, 
        $user, $zipcode, $pic, $emailme);
    $stmt -> execute();
    $stmt -> close();
}

Sintaks IODKU mengharuskan Anda mengatur setiap kolom satu per satu. Anda tidak dapat mencantumkan semuanya dalam satu klausa seperti yang Anda coba lakukan.

Anda harus selalu melaporkan kesalahan apa pun dari panggilan apa pun ke prepare() atau execute(). Atau Anda dapat membuat pengecualian melempar mysqli:

$mysqli -> report_mode = MYSQLI_REPORT_STRICT;

Selain itu, Anda tidak perlu bind_result(), karena tidak ada hasil yang ditetapkan dari INSERT:

// NO: $stmt -> bind_result($result);


  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 kerja MySQL tidak sensitif dan aksen tidak sensitif di UTF-8

  2. Cara Menghitung Persentase Kolom di MySQL

  3. Mysql Bagaimana hanya memilih dari kolom jika kolom ada

  4. Bagaimana cara MySQL menyimpan data?

  5. Peningkatan Laravel 5.4, mengonversi ke utf4mb dari utf8