久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

      <bdo id='D8Kdj'></bdo><ul id='D8Kdj'></ul>
      <tfoot id='D8Kdj'></tfoot>
      <i id='D8Kdj'><tr id='D8Kdj'><dt id='D8Kdj'><q id='D8Kdj'><span id='D8Kdj'><b id='D8Kdj'><form id='D8Kdj'><ins id='D8Kdj'></ins><ul id='D8Kdj'></ul><sub id='D8Kdj'></sub></form><legend id='D8Kdj'></legend><bdo id='D8Kdj'><pre id='D8Kdj'><center id='D8Kdj'></center></pre></bdo></b><th id='D8Kdj'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='D8Kdj'><tfoot id='D8Kdj'></tfoot><dl id='D8Kdj'><fieldset id='D8Kdj'></fieldset></dl></div>
    1. <legend id='D8Kdj'><style id='D8Kdj'><dir id='D8Kdj'><q id='D8Kdj'></q></dir></style></legend>

      1. <small id='D8Kdj'></small><noframes id='D8Kdj'>

        帶有 foreach 和 fetch 的 PHP PDO

        PHP PDO with foreach and fetch(帶有 foreach 和 fetch 的 PHP PDO)
        <i id='j8OtE'><tr id='j8OtE'><dt id='j8OtE'><q id='j8OtE'><span id='j8OtE'><b id='j8OtE'><form id='j8OtE'><ins id='j8OtE'></ins><ul id='j8OtE'></ul><sub id='j8OtE'></sub></form><legend id='j8OtE'></legend><bdo id='j8OtE'><pre id='j8OtE'><center id='j8OtE'></center></pre></bdo></b><th id='j8OtE'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='j8OtE'><tfoot id='j8OtE'></tfoot><dl id='j8OtE'><fieldset id='j8OtE'></fieldset></dl></div>
        <tfoot id='j8OtE'></tfoot>

          <tbody id='j8OtE'></tbody>

          <small id='j8OtE'></small><noframes id='j8OtE'>

            1. <legend id='j8OtE'><style id='j8OtE'><dir id='j8OtE'><q id='j8OtE'></q></dir></style></legend>
              • <bdo id='j8OtE'></bdo><ul id='j8OtE'></ul>
                • 本文介紹了帶有 foreach 和 fetch 的 PHP PDO的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  以下代碼:

                  <?php
                  try {
                      $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
                      echo "Connection is successful!<br/>";
                      $sql = "SELECT * FROM users";
                      $users = $dbh->query($sql);
                      foreach ($users as $row) {
                          print $row["name"] . "-" . $row["sex"] ."<br/>";
                      }
                      foreach ($users as $row) {
                          print $row["name"] . "-" . $row["sex"] ."<br/>";
                      }
                      $dbh = null;
                  }
                  catch (PDOexception $e) {
                      echo "Error is: " . $e-> etmessage();
                  }
                  

                  輸出:

                  Connection is successful!
                  
                  person A-male
                  person B-female
                  

                  運行foreach"兩次不是我的目的,我只是好奇為什么兩個foreach"語句只輸出一次結果?

                  Running "foreach" twice is not my purpose, I'm just curious why TWO "foreach" statements only output the result once?

                  以下是類似的情況:

                  <?php
                  try {
                      $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
                      echo "Connection is successful!<br/>";
                      $sql = "SELECT * FROM users";
                      $users = $dbh->query($sql);
                      foreach ($users as $row) {
                          print $row["name"] . "-" . $row["sex"] ."<br/>";
                      }
                      echo "<br/>";
                      $result = $users->fetch(PDO::FETCH_ASSOC);
                      foreach($result as $key => $value) {
                          echo $key . "-" . $value . "<br/>";
                      }
                      $dbh = null;
                  }
                  catch (PDOexception $e) {
                      echo "Error is: " . $e-> etmessage();
                  }
                  

                  輸出:

                  Connection is successful!
                  
                  person A-male
                  person B-female
                  
                  SCREAM: Error suppression ignored for
                  Warning: Invalid argument supplied for foreach()
                  

                  但是當我從上面的代碼中刪除第一個foreach"時,輸出會變得正常:

                  But when I delete the first "foreach" from the above codes, the output will become normal:

                  <?php
                  try {
                      $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
                      echo "Connection is successful!<br/>";
                      $sql = "SELECT * FROM users";
                      $users = $dbh->query($sql);
                  
                      echo "<br/>";
                      $result = $users->fetch(PDO::FETCH_ASSOC);
                      foreach($result as $key => $value) {
                          echo $key . "-" . $value . "<br/>";
                      }
                      $dbh = null;
                  }
                  catch (PDOexception $e) {
                      echo "Error is: " . $e-> etmessage();
                  }
                  

                  輸出:

                  Connection is successful!
                  
                  user_id-0000000001
                  name-person A
                  sex-male
                  

                  為什么會發生這種情況?

                  Why does this happen?

                  推薦答案

                  A PDOStatement(您在 $users 中有)是一個前向光標.這意味著,一旦使用(第一次 foreach 迭代),它就不會倒回到結果集的開頭.

                  A PDOStatement (which you have in $users) is a forward-cursor. That means, once consumed (the first foreach iteration), it won't rewind to the beginning of the resultset.

                  可以在foreach之后關閉游標,再次執行語句:

                  You can close the cursor after the foreach and execute the statement again:

                  $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 和完整緩存來緩存:

                  Or you could cache using tailored CachingIterator with a fullcache:

                  $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 對象的所有屬性和方法.

                  You find the CachedPDOStatement class as a gist. The caching iterator is probably more sane than storing the result set into an array because it still offers all properties and methods of the PDOStatement object it has wrapped.

                  這篇關于帶有 foreach 和 fetch 的 PHP PDO的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  MySQLi prepared statement amp; foreach loop(MySQLi準備好的語句amp;foreach 循環)
                  Is mysqli_insert_id() gets record from whole server or from same user?(mysqli_insert_id() 是從整個服務器還是從同一用戶獲取記錄?)
                  PHP MySQLi doesn#39;t recognize login info(PHP MySQLi 無法識別登錄信息)
                  mysqli_select_db() expects exactly 2 parameters(mysqli_select_db() 需要 2 個參數)
                  Php mysql pdo query: fill up variable with query result(Php mysql pdo 查詢:用查詢結果填充變量)
                  MySQLI 28000/1045 Access denied for user #39;root#39;@#39;localhost#39;(MySQLI 28000/1045 用戶“root@“localhost的訪問被拒絕)

                • <tfoot id='58lPI'></tfoot>

                        <legend id='58lPI'><style id='58lPI'><dir id='58lPI'><q id='58lPI'></q></dir></style></legend>
                        <i id='58lPI'><tr id='58lPI'><dt id='58lPI'><q id='58lPI'><span id='58lPI'><b id='58lPI'><form id='58lPI'><ins id='58lPI'></ins><ul id='58lPI'></ul><sub id='58lPI'></sub></form><legend id='58lPI'></legend><bdo id='58lPI'><pre id='58lPI'><center id='58lPI'></center></pre></bdo></b><th id='58lPI'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='58lPI'><tfoot id='58lPI'></tfoot><dl id='58lPI'><fieldset id='58lPI'></fieldset></dl></div>

                        <small id='58lPI'></small><noframes id='58lPI'>

                        • <bdo id='58lPI'></bdo><ul id='58lPI'></ul>

                              <tbody id='58lPI'></tbody>
                            主站蜘蛛池模板: av免费在线观看网站 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 国产精品日日夜夜 | 欧美 中文字幕 | 操亚洲| 精品国产乱码久久久久久闺蜜 | 日韩一区二区在线观看 | 国内精品久久久久久 | 中文字幕一区二区三区四区 | 国产在线观看一区二区 | 免费成人毛片 | 夜夜操操操 | 欧美11一13sex性hd | 91一区二区 | 四虎影视免费在线 | 午夜免费视频 | 日韩视频一区二区 | 欧美性久久 | 国产视频精品在线 | 999视频 | 狠狠操狠狠干 | 国产探花在线观看视频 | 国产精品美女久久久 | 99精品电影 | 国产精品综合色区在线观看 | 视频一区二区中文字幕 | 国产精品自产av一区二区三区 | 免费国产精品久久久久久 | 日本淫视频 | 九九色九九 | 99在线视频观看 | 精品久久国产 | 午夜精品影院 | 91麻豆精品国产91久久久资源速度 | 国产福利在线小视频 | 欧美日韩国产一区二区三区不卡 | 日日碰碰| 国产传媒在线观看 | 精彩视频一区二区三区 | 91www在线观看| 欧美黑人激情 |