$stmt = $dbh->prepare('SELECT id, name FROM folders WHERE parent_folder_id = :id');
$stmt->bindValue(':id', $folder_id, PDO::PARAM_INT);
मैं ऊपर कोड है। यदि किसी फ़ोल्डर में parent_folder_id है तो इसका मतलब है कि यह किसी अन्य फ़ोल्डर के अंदर है। यदि यह कॉलम नल है तो इसका मतलब है कि यह एक रूट फ़ोल्डर है।यदि मैं पीडीओ के साथ आईएनटी और न्यूल दोनों को स्वीकार करना चाहता हूं तो एक मूल्य कैसे बांधें?
मेरी समझ से अगर $ folder_id नल है तो यह 0 के रूप में इसका इलाज करेगा (इसलिए मुझे कोड के साथ कोई परिणाम नहीं मिलता है क्योंकि उस कॉलम में मान न्यूल है और 0 नहीं है)। यदि मैं पीडीओ :: PARAM_NULL को तीसरा तर्क बदलता हूं तो मुझे अभी भी कोई परिणाम नहीं मिलते हैं। मेरा मानना है कि ऐसा इसलिए है क्योंकि यह क्वेरी को "WHERE parent_folder_id = NULL" के रूप में मूल्यांकन करता है जो "WHERE parent_folder_id NULL" के बराबर नहीं है।
क्या पीडीओ का यह सही तरीके से इलाज करने का कोई तरीका है या क्या मुझे "एस" को "है" के साथ बदलने के लिए एक इनलाइन के साथ अपना SQL कथन बनाना चाहिए और सही के साथ bindValue तीसरा पैरामीटर स्वैप करना चाहिए?
धन्यवाद! यह चाल है और आपने मुझे कुछ भी सिखाया है, मैंने कभी भी <=> का उपयोग नहीं किया था (यिक्स, पार्टी के लिए थोड़ा, एह?)। यह भविष्य में मुझे बहुत सारे सिरदर्द बचाएगा, यह निश्चित रूप से है :) – Gazillion