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

'कोई पंक्तियाँ प्रभावित नहीं हुईं' और पंक्तियों के बीच अंतर सफलतापूर्वक अद्यतन किया गया - समान मान (MySQL और PHP) के लिए

एक आसान समाधान दो प्रश्न होंगे।

सबसे पहले, mysqli_num_rows() का उपयोग करके पंक्ति मौजूद है या नहीं यह जांचने के लिए एक SELECT क्वेरी चलाएँ।

फिर, यदि पंक्ति मौजूद है, तो आप अद्यतन क्वेरी चला सकते हैं और mysqli_प्रभावित_रो () का उपयोग कर सकते हैं।

[संपादित करें]

...मैं एकल कॉल चाहने वाले किसी भी व्यक्ति के लिए एक संभावित विकल्प का सुझाव दूंगा। मुझे नहीं पता कि आप कोई INSERTs करने में रुचि रखते हैं, या विशुद्ध रूप से UPDATEs। नीचे विचार के लिए कुछ भोजन है:

शीर्ष टिप्पणी @ से mysqli.प्रभावित-पंक्तियों.php :

"डुप्लिकेट कुंजी अद्यतन पर INSERT INTO" प्रश्नों पर, हालांकि कोई प्रभावित_रो से सफल प्रश्नों पर केवल 0 या 1 प्रति पंक्ति लौटने की उम्मीद कर सकता है, यह वास्तव में 2 लौटा सकता है।

मैसकल मैनुअल से:"ऑन डिप्लिकेट कुंजी अपडेट के साथ, प्रति पंक्ति प्रभावित-पंक्तियों का मान 1 है यदि पंक्ति को एक नई पंक्ति के रूप में डाला जाता है और 2 यदि मौजूदा पंक्ति को अपडेट किया जाता है।"

देखें:http://dev.mysql.com /doc/refman/5.0/hi/insert-on-duplicate.html

यहाँ योग विश्लेषण प्रति पंक्ति है :

+0:​​एक पंक्ति को अद्यतन या सम्मिलित नहीं किया गया था (संभवतः क्योंकि पंक्ति पहले से मौजूद थी, लेकिन अद्यतन के दौरान वास्तव में कोई फ़ील्ड मान नहीं बदला गया था)

+1:एक पंक्ति डाली गई थी

+2:एक पंक्ति अपडेट की गई थी

क्या आप इसे अपनी आवश्यकताओं के अनुरूप बना सकते हैं?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL डेटाबेस को UTF-8 एन्कोडिंग में कैसे बदलें

  2. मेरी MySQL तालिका से बाधाओं को कैसे दूर करें?

  3. संसाधन# क्या हैं?

  4. मूडल के प्रदर्शन को बेंचमार्क कैसे करें

  5. MySQL VARCHAR(255) UTF8 कुंजी के लिए बहुत लंबा है, लेकिन अधिकतम लंबाई 1000 बाइट्स है