Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

डुप्लीकेट कुंजी के साथ तैयार विवरण

INSERT...ON DUPLICATE KEY UPDATE का उपयोग करने का सबसे आसान तरीका निम्नलिखित तरीके से VALUES क्लॉज का उपयोग करना है, इसलिए आपको UPDATE क्लॉज में मापदंडों को दोहराने की आवश्यकता नहीं है। वे आपके द्वारा 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();
}

IODKU सिंटैक्स के लिए आवश्यक है कि आप प्रत्येक कॉलम को अलग-अलग सेट करें। आप उन सभी को एक खंड में सूचीबद्ध नहीं कर सकते जैसे आप करने का प्रयास कर रहे थे।

आपको हमेशा किसी भी कॉल से तैयार () या निष्पादित () में किसी भी त्रुटि की रिपोर्ट करनी चाहिए। या आप mysqli को अपवाद बना सकते हैं:

$mysqli -> report_mode = MYSQLI_REPORT_STRICT;

साथ ही, आपको bind_result() करने की आवश्यकता नहीं है, क्योंकि 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. उपयोगकर्ता के लिए जावा JDBC एक्सेस अस्वीकृत

  2. पिछले महीने से सभी पंक्तियों को पुनः प्राप्त करें (लारवेल + वाक्पटु)

  3. क्वेरी संख्या को कम करने के लिए एकाधिक क्वेरी परिणाम कैसे प्राप्त करें?

  4. mysql त्रुटि 'TYPE=MyISAM'

  5. एसक्यूएल:प्रति समूह अधिकतम रिकॉर्ड खोजें