जब execute() सत्य लौटाता है इसका मतलब है कि बयान "सफल" था, लेकिन इसका मतलब यह नहीं है कि इसने कुछ भी बदल दिया है। इसका सीधा सा मतलब है कि कोई त्रुटि नहीं थी।
-
WHERE क्लॉज की स्थितियों के कारण यह शून्य पंक्तियों से मेल खा सकता है। इसे अभी भी "सफलता" माना जाता है। आप
SELECTआज़मा सकते हैं उसी WHERE क्लॉज के साथ, और परिणाम प्राप्त करें, यह पुष्टि करने के लिए कि यह पंक्तियों से मेल खाता है। -
हो सकता है कि यह एक या अधिक पंक्तियों से मेल खाता हो, लेकिन आप जो मान सेट कर रहे हैं, वे पहले से ही उन पंक्तियों के मान हैं। आप
$sth->rowCount(). पर कॉल कर सकते हैं आपके द्वारा निष्पादित करने के बाद, यह पता लगाने के लिए कि UPDATE प्रभावित . कितनी पंक्तियां हैं (यह मेल खाने वाली पंक्तियों की संख्या से कम हो सकता है)। -
यदि आपके पास इस तालिका की एक से अधिक प्रतियाँ हैं, तो आपको दोबारा जाँच करनी चाहिए कि आपके द्वारा पढ़े जा रहे डेटाबेस में परिवर्तन किया गया है। कभी-कभी मेरे साथ ऐसा होता है -- मैं एप्लिकेशन कॉन्फ़िगरेशन फ़ाइल बदलना भूल जाता हूं, और मुझे नहीं पता कि मैं गलत डेटाबेस अपडेट कर रहा हूं।
यही समस्या निकली -- तीसरे बिंदु पर भिन्नता:
- यदि आप एक से अधिक सर्वर पर काम करते हैं, तो यह भी जांचें कि आप सही mysql सर्वर पर परिवर्तनों की जांच कर रहे हैं।