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

एक पीडीओ क्वेरी के साथ अप्रत्याशित रूप से PHP मेमोरी सीमा को मार रहा है?

डिंग डिंग डिंग!

MySQL से कनेक्ट करते समय, PHP बफ़र की गई क्वेरी का उपयोग करना पसंद करती है . यह सच है, भले ही आप कनेक्ट करने के लिए किस विधि का उपयोग कर रहे हों। बफ़र किए गए प्रश्नों का उपयोग करते समय, आपके द्वारा पूछे जाने पर प्राप्त किए जाने के बजाय संपूर्ण परिणामसेट तुरंत प्राप्त किया जाता है। यह आमतौर पर है प्रदर्शन के लिए अच्छा है, क्योंकि कम राउंड-ट्रिप हैं।

लेकिन PHP में सब कुछ की तरह, एक गोचा है। जैसा कि बफ़रिंग पेज पर बताया गया है:

आप PHP 5.3 का उपयोग कर रहे हैं, जिसका अर्थ है कि एक अच्छा मौका है कि आप mysqlnd का उपयोग कर रहे हैं।

आप यहां बफ़र किए गए प्रश्नों को बंद करना चाहेंगे। यह MySQL के हर PHP इंटरफ़ेस में अलग तरह से किया जाता है:

  • पीडीओ के लिए, आपको PDO::MYSQL_ATTR_USE_BUFFERED_QUERY सेट करना होगा false . के लिए विशेषता ।
  • mysqli के लिए, आपको MYSQLI_USE_RESULT पास करना होगा query के लिए स्थिर विधि।
  • mysql के लिए, आपको mysql_unbuffered_query . पर कॉल करना होगा इसके बजाय mysql_query

पूरी जानकारी और उदाहरण पेज पर हैं।

बिग फैट अनबफर क्वेरी गोचा!

आपको जरूरी एक अन्य क्वेरी जारी करने से पहले स्टेटमेंट हैंडल को ठीक से बंद करें और परिणाम सेट को मुक्त करें:

ऐसा करने में विफलता के परिणामस्वरूप एक त्रुटि होगी।




  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. PHP में विदेशी कुंजी अपवादों को संभालना

  3. मैं चयनित आइटम को ड्रॉप डाउन बॉक्स में कैसे सेट करूं

  4. Mysql किसी दिए गए डेटाटाइम रेंज में यादृच्छिक डेटाटाइम डालें

  5. MySQL:त्रुटि 1227 (42000):प्रवेश निषेध - उपयोगकर्ता नहीं बना सकता