इस समस्या को हल करने के लिए अपने कोड के कुछ हिस्सों को अलग करने की कोशिश में कई घंटे बिताने के बाद, मैंने देखा कि ATTR_EMULATE_PREPARES ध्वज को सही पर सेट करने के बाद त्रुटि दूर हो गई।
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
यह पीडीओ को MySQL द्वारा मूल रूप से तैयार किए गए कथनों का अनुकरण करने के लिए कहता है। मैं जो पढ़ रहा हूं, उसमें आमतौर पर इस ध्वज को बंद करने की सिफारिश की जाती है (यह डिफ़ॉल्ट रूप से सच है) यदि आप MySQL और PHP के सबसे अद्यतित संस्करण का उपयोग कर रहे हैं। आप इसके बारे में अधिक जानकारी इस में प्राप्त कर सकते हैं। SO लेख ।
मुझे विश्वास है कि यह MySQL के साथ एक बग है (मुझे संस्करण 5.6.17 तक समस्या थी)। इस विशेष समस्या पर ज्यादा चर्चा नहीं हुई है, इसलिए उम्मीद है कि यह किसी और के समस्या निवारण के घंटों को बचाता है। समस्या पर इस MySQL बग पेज पर भी चर्चा की गई है। , लेकिन पोस्ट किए गए समाधान ने मेरी स्थिति में मेरी मदद नहीं की।