दिलचस्प पोस्ट
वैकल्पिक आभासी तंत्र क्रियान्वयन? अपरिभाषित फ़ंक्शन पर कॉल करें __ () त्रुटि – phpMyAdmin आर में एक वेक्टर के लिए अधिकतम लंबाई ब्राउज़र की मुख्य स्क्रॉलबार के साथ विशेष डीआईवी सामग्री स्क्रॉल करें ब्राउज़र पृष्ठ में चयनित पाठ के समन्वय Javascript का उपयोग करके सभी ब्राउज़रों के लिए क्लिपबोर्ड पर कॉपी करें क्या सी + # में ++ i और i ++ के बीच कोई अंतर है? Pyodbc – "डेटा स्रोत नाम नहीं मिला, और कोई भी डिफ़ॉल्ट ड्राइवर निर्दिष्ट नहीं" पायथन में युग (यूनिक्स टाइम) के बाद से मैं डेटेट ऑब्जेक्ट को मिलीसेकंड में कैसे रूपांतरित कर सकता हूं? किसी दशमलव में सी # परिणामों में दोहरे अंकों के रूपांतरण का अंतर एवीप्लेयर प्रतिनिधि नहीं है? जब गाने का खेल खत्म हो जाए तो ट्रैक करने के लिए कैसे? उद्देश्य सी आईफोन विकास JQuery अजाक्स अनुरोध: उपयोगकर्ता-एजेंट बदलें गतिशील रूप से एक AngularJS नियंत्रक लोड कर रहा है एंड्रॉइड में स्थान श्रोता के साथ पृष्ठभूमि सेवा क्या मैं किसी सी # विशेषता को एक अरैरे या अन्य चर संख्याओं के साथ आरंभ कर सकता हूं?

एसक्यूएल – अगर वर्तमान में अद्यतन करें

मैं क्या करने की कोशिश कर रहा हूं INSERT ग्राहकों को अपने डेटाबेस में, लेकिन IF EXISTS यह IF EXISTS पंक्ति को UPDATE , तो एक नई पंक्ति में ELSE INSERT INTO

बिल्कुल मैं पहले डेटाबेस से कनेक्ट और यूआरएल स्ट्रिंग से $name , $email और $birthday प्राप्त करें।

 $con=mysqli_connect("localhost","---","---","---"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $name=$_GET['name']; $email=$_GET['email']; $birthday=$_GET['birthday']; 

यह काम करता है, लेकिन सिर्फ नई पंक्ति जोड़ती है;

 mysqli_query($con,"INSERT INTO subs (subs_name, subs_email, subs_birthday) VALUES ('$name', '$email', '$birthday')"); mysqli_close($con); 

यहां मैंने जो कोशिश की है;

 mysqli_query($con,"INSERT INTO subs (subs_name, subs_email, subs_birthday) VALUES '$name', '$email', '$birthday' ON DUPLICATE KEY UPDATE subs_name = VALUES($name), subs_birthday = VALUES($birthday)"); mysqli_close($con); 

तथा

 mysqli_query($con,"IF EXISTS (SELECT * FROM subs WHERE subs_email='$email') UPDATE subs SET subs_name='$name', subs_birthday='$birthday' WHERE subs_email='$email' ELSE INSERT INTO subs (subs_name, subs_email, subs_birthday) VALUES ('$name', '$email', '$birthday')"); mysqli_close($con); 

तथा

 mysqli_query($con,"IF NOT EXISTS(SELECT * FROM subs WHERE subs_email='$email') Begin INSERT INTO subs (subs_name, subs_email, subs_birthday) VALUES ('$name', '$email', '$birthday') End"); mysqli_close($con); 

लेकिन उनमें से कोई भी काम नहीं करता, मैं क्या कर रहा हूँ गलत?

कोई भी मदद बहुत ही सराहनीय होगी!

वेब के समाधान से एकत्रित समाधान "एसक्यूएल – अगर वर्तमान में अद्यतन करें"

  1. अपने subs_email कॉलम पर एक UNIQUE बाध्य बनाएँ, अगर कोई पहले से मौजूद नहीं है:

     ALTER TABLE subs ADD UNIQUE (subs_email) 
  2. INSERT ... ON DUPLICATE KEY UPDATE उपयोग INSERT ... ON DUPLICATE KEY UPDATE :

     INSERT INTO subs (subs_name, subs_email, subs_birthday) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE subs_name = VALUES(subs_name), subs_birthday = VALUES(subs_birthday) 

आप INSERT के INSERT भाग से स्तंभ मूल्यों को संदर्भित करने के लिए UPDATE क्लॉज़ में VALUES (col_name) फ़ंक्शन का उपयोग कर सकते हैं … पर डुप्लिकेट की कुंजी अद्यतन – dev.mysql.com

  1. ध्यान दें कि मैंने स्ट्रिंग लीटरल्स के स्थान पर पैरामीटर प्लेसहोल्डर्स का उपयोग किया है, क्योंकि वास्तव में एसक्यूएल इंजेक्शन हमलों से बचाव के लिए मानकीकृत कथन का प्रयोग करना चाहिए।