Avatar ·

PDO क्वेरी में IN() शर्त के साथ ऐरे को कैसे बांधें?

सभी को नमस्कार! मैं PHP और PDO में नौसिखिया हूँ, और एक समस्या का सामना कर रहा हूँ। मेरे पास उपयोगकर्ता ID का एक ऐरे है, उदाहरण के लिए: [1, 5, 7, 12]। मुझे users तालिका से उन उपयोगकर्ताओं को चुनना है जिनकी id इस ऐरे में है। सामान्य SQL में मैं लिखूंगा: SELECT * FROM users WHERE id IN (1, 5, 7, 12) लेकिन इसे तैयार क्वेरी (prepared statements) के साथ PDO के माध्यम से कैसे करूँ? मैंने इस तरह प्रयास किया: ```php $ids = [1, 5, 7, 12]; $stmt = $pdo->prepare('SELECT * FROM users WHERE id IN (:ids)'); $stmt->execute([':ids' => $ids]); ``` लेकिन यह काम नहीं करता — PDO शिकायत करता है कि वह scalar value की उम्मीद करता है, ऐरे की नहीं। मैंने implode करके स्ट्रिंग के रूप में पास करने का प्रयास किया — यह भी विकल्प नहीं है, क्योंकि यह सुरक्षा को तोड़ता है। IN() में ऐरे को सही तरीके से कैसे बांधें? क्या प्लेसहोल्डर को गतिशील रूप से उत्पन्न करना आवश्यक है? या PDO के साथ कोई चालाक तरीका है? विस्तृत उत्तर और उदाहरणों के लिए आभारी रहूंगा। P.S. PHP संस्करण 8.1, MySQL का उपयोग कर रहा हूँ।