एक अन्य कारण से आपको 0 प्रभावित पंक्तियाँ मिलेंगी यदि UPDATE
कथन कोई पंक्तियों से मेल नहीं खाता। उदाहरण के लिए:
UPDATE MyTable SET field = 'content' WHERE id = 1234;
id = 1234
. के साथ कोई पंक्ति मौजूद नहीं होने पर 0 प्रभावित पंक्तियाँ देता है . यह कोई त्रुटि नहीं है, यह सिर्फ एक UPDATE
है जो बिना पंक्तियों से मेल खाने के लिए हुआ।
इस मामले का पता लगाने का तरीका SELECT
. का उपयोग करना है यह सत्यापित करने के लिए कि ऐसी कोई पंक्ति है। यदि आप पुष्टि कर सकते हैं कि पंक्ति मौजूद है, लेकिन UPDATE
कहा कि यह 0 पंक्तियों को प्रभावित करता है, तो आप जानते हैं कि जिन मूल्यों को आपने बदलने की कोशिश की थी, वे वास्तव में डेटाबेस में पहले से ही पंक्तियाँ थीं।
SELECT COUNT(*) FROM MyTable WHERE id = 1234;
लेकिन भेद महत्वपूर्ण नहीं हो सकता है। यदि mysql_error()
. है तो आप त्रुटि की रिपोर्ट कर सकते हैं कहते हैं कि एक है, जैसा कि @BoltClock सुझाव देता है। * यदि कोई त्रुटि नहीं है तो आप उपयोगकर्ता को "कोई परिवर्तन नहीं" की रिपोर्ट कर सकते हैं।