久久久久久久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>
                            主站蜘蛛池模板: 国产视频不卡一区 | 日韩综合网 | 超碰97免费在线 | 亚洲国产精品日韩av不卡在线 | 欧美v日韩v | 九九综合| av在线免费网 | 激情婷婷 | 欧美在线看片 | 日韩伦理一区二区 | 激情小说综合网 | 永久免费视频 | 亚洲精品日韩一区二区电影 | 91在线资源 | 国际精品鲁一鲁一区二区小说 | 黄视频免费观看 | 国产成人综合网 | 国产午夜视频 | 91视频国产精品 | 亚洲欧洲成人在线 | 色橹橹欧美在线观看视频高清 | 国产一级片一区二区 | 国产高清视频在线观看 | 99av成人精品国语自产拍 | 国产99小视频 | 久久精品久久久 | 中文字幕在线免费观看 | 日本特黄a级高清免费大片 成年人黄色小视频 | 色综合99 | av一级久久 | 精品国产精品国产偷麻豆 | 久久一二区 | 国产欧美日韩一区二区三区在线 | 国产精品乱码一区二三区小蝌蚪 | 亚洲欧洲一区 | 日韩视频在线一区 | 日本黄色免费大片 | 一区二区国产在线观看 | 欧美毛片免费观看 | 在线色| 久久精品亚洲一区 |