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

php do जबकि next->rowset . के साथ काम नहीं करेगा

मुझे पीडीओ ::नेक्स्टरोसेट () के साथ एक ही समस्या थी, क्योंकि यह सच हो जाता है, यहां तक ​​​​कि कोई और रोसेट उपलब्ध नहीं है, इसलिए जब भ्रूण () को कॉल किया जाता है, तो यह अपवाद HY000 उठाता है। (PHP 5.5.12 विंडोज़, माइस्क्ल 5.5.17 लाइनक्स पर परीक्षण किया गया)

इस समस्या का समाधान यह है कि रोसेट लाने से पहले PDO::columnCount() विधि से स्तंभों की संख्या की जाँच की जाए। यदि यह गैर-शून्य है, तो आपके पास एक वैध रोसेट है, और इस प्रकार आप PDO::fetchAll() को कॉल कर सकते हैं।

भले ही PDO::nextRowset() रिपोर्ट सही हो, कॉलमकाउंट() अगले रोसेट पर जाने से पहले कॉलम की संख्या की रिपोर्ट करेगा।

उदाहरण:

while ($objQuery->columnCount()) {
    $tab[] = $objQuery->fetchAll(\PDO::FETCH_ASSOC);
    $objQuery->nextRowset();
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL संग्रहीत कार्यविधि - चर बहुत छोटा

  2. SQL क्वेरी त्रुटि

  3. MySql में प्रत्येक कॉलम के शीर्ष N मान कैसे प्राप्त करें?

  4. वर्तमान तिथि के अनुसार डेटा छँटाई

  5. अगर कथन के साथ मैसकल अपडेट