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

मैं पीडीओ मापदंडों की एक सरणी कैसे पास कर सकता हूं, फिर भी उनके प्रकार निर्दिष्ट कर सकता हूं?

यदि आप PDO::ATTR_EMULATE_PREPARES की डिफ़ॉल्ट सेटिंग को बंद कर देते हैं , तो यह काम करेगा। मुझे अभी पता चला है कि वह सेटिंग डिफ़ॉल्ट रूप से MySQL के लिए चालू है, जिसका अर्थ है कि आप वास्तव में कभी भी तैयार कथन का उपयोग नहीं करते हैं, PHP आंतरिक रूप से आपके लिए गतिशील एसक्यूएल बनाता है, आपके लिए मानों को उद्धृत करता है और प्लेसहोल्डर को प्रतिस्थापित करता है। हां, एक प्रमुख wtf.

$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$stmt = $pdo->prepare($sql);
$stmt->execute(array(5)); //works!

प्रदर्शन कारणों से डिफ़ॉल्ट रूप से तैयारियों का अनुकरण किया जाता है।

साथ ही देखें PDO MySQL:PDO::ATTR_EMULATE_PREPARES का उपयोग करें या नहीं?



  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. मेरी तालिका से डुप्लिकेट रिकॉर्ड को कैसे रोकें सम्मिलित करें अनदेखा करें यहां काम नहीं करता है

  3. पीडीओ तैयार बयान से क्वेरी वापस प्राप्त करें

  4. जब मैं एक नया इंडेक्स जोड़ता हूं तो MySQL में किसी इंडेक्स की कार्डिनैलिटी अपरिवर्तित क्यों रहती है?

  5. MySQL:अपर कैमल केस (पास्कल केस) में टेबल को नाम नहीं दे सकता