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

पीएचपी पीडीओ foreach और लाने के साथ

एक PDOStatement (जो आपके पास $users . में है ) एक फॉरवर्ड-कर्सर है। इसका मतलब है, एक बार सेवन करने के बाद (पहला foreach iteration), यह परिणामसेट की शुरुआत में वापस नहीं आएगा।

foreach . के बाद आप कर्सर को बंद कर सकते हैं और कथन को फिर से निष्पादित करें:

$users       = $dbh->query($sql);
foreach ($users as $row) {
    print $row["name"] . " - " . $row["sex"] . "<br/>";
}

$users->execute();

foreach ($users as $row) {
    print $row["name"] . " - " . $row["sex"] . "<br/>";
}

या आप अनुकूलित CachingIterator . का उपयोग करके कैश कर सकते हैं पूर्ण कैश के साथ:

$users       = $dbh->query($sql);

$usersCached = new CachedPDOStatement($users);

foreach ($usersCached as $row) {
    print $row["name"] . " - " . $row["sex"] . "<br/>";
}
foreach ($usersCached as $row) {
    print $row["name"] . " - " . $row["sex"] . "<br/>";
}

आप CachedPDOStatement ढूंढें एक सार के रूप में कक्षा . कैशिंग इटरेटर शायद परिणाम सेट को एक सरणी में संग्रहीत करने से अधिक समझदार है क्योंकि यह अभी भी PDOStatement के सभी गुणों और विधियों को प्रदान करता है वह वस्तु जिसे लपेटा गया है।



  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. MySQL:NULL फ़ील्ड कितनी जगह का उपयोग करता है?

  4. लार्वेल 5 में रिश्ते के कॉलम पर पेजिनेट के साथ 'होने' का उपयोग कैसे करें

  5. डॉकर लिखें mysql आयात .sql