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

PDOStatement::execute() सत्य लौटाता है लेकिन डेटा अपडेट नहीं होता है

जब execute() सत्य लौटाता है इसका मतलब है कि बयान "सफल" था, लेकिन इसका मतलब यह नहीं है कि इसने कुछ भी बदल दिया है। इसका सीधा सा मतलब है कि कोई त्रुटि नहीं थी।

  • WHERE क्लॉज की स्थितियों के कारण यह शून्य पंक्तियों से मेल खा सकता है। इसे अभी भी "सफलता" माना जाता है। आप SELECT आज़मा सकते हैं उसी WHERE क्लॉज के साथ, और परिणाम प्राप्त करें, यह पुष्टि करने के लिए कि यह पंक्तियों से मेल खाता है।

  • हो सकता है कि यह एक या अधिक पंक्तियों से मेल खाता हो, लेकिन आप जो मान सेट कर रहे हैं, वे पहले से ही उन पंक्तियों के मान हैं। आप $sth->rowCount() . पर कॉल कर सकते हैं आपके द्वारा निष्पादित करने के बाद, यह पता लगाने के लिए कि UPDATE प्रभावित . कितनी पंक्तियां हैं (यह मेल खाने वाली पंक्तियों की संख्या से कम हो सकता है)।

  • यदि आपके पास इस तालिका की एक से अधिक प्रतियाँ हैं, तो आपको दोबारा जाँच करनी चाहिए कि आपके द्वारा पढ़े जा रहे डेटाबेस में परिवर्तन किया गया है। कभी-कभी मेरे साथ ऐसा होता है -- मैं एप्लिकेशन कॉन्फ़िगरेशन फ़ाइल बदलना भूल जाता हूं, और मुझे नहीं पता कि मैं गलत डेटाबेस अपडेट कर रहा हूं।

यही समस्या निकली -- तीसरे बिंदु पर भिन्नता:

  • यदि आप एक से अधिक सर्वर पर काम करते हैं, तो यह भी जांचें कि आप सही mysql सर्वर पर परिवर्तनों की जांच कर रहे हैं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 तिथियों और औसत प्रति घंटा आउटपुट के बीच डेटा का चयन करें

  2. एंटिटी फ्रेमवर्क में ग्रुपबी के अंदर (सीमा) सूची लें

  3. एसक्यूएल में दो कॉलम से अद्वितीय जोड़े कैसे खोजें?

  4. PHP, अपाचे शुरू करें?

  5. अजाक्स के साथ डेटाबेस से रिकॉर्ड कैसे हटाएं