SQL डीबगिंग के बारे में यह सबसे आम मिथक है। "मुझे यह बताने में सक्षम होने के लिए तैयारी के बाद क्वेरी देखने की आवश्यकता है कि क्या कोई त्रुटि हुई है"। तथ्य यह है, आप नहीं , और मैं आपको बताता हूँ क्यों।
एक बार क्वेरी तैयार हो जाने के बाद, प्लेसहोल्डर को वैध स्ट्रिंग/पूर्णांक माना जा सकता है . आपको परवाह नहीं है कि इसमें क्या है।
साथ ही, अगर आप पीडीओ को सही तरीके से सेट करते हैं, तो आपको एक विस्तृत PDOException
मिलेगा आपके द्वारा की गई त्रुटि का विवरण देने के साथ-साथ त्रुटि कहां हुई, इसका पूरा बैकट्रेस, साथ ही आपको MySQL से त्रुटि स्ट्रिंग मिलती है, जिससे सिंटैक्स त्रुटियों को ढूंढना बहुत आसान हो जाता है।
पीडीओ अपवादों को सक्षम करने और नकली तैयारियों को अक्षम करने के लिए:
$pdo = new PDO("mysql:host=localhost;dbname=database_name", "user", "password");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);