首頁  >  文章  >  後端開發  >  PDO中取得結果集之fetchAll()方法詳解

PDO中取得結果集之fetchAll()方法詳解

黄舟
黄舟原創
2017-04-28 17:39:2421770瀏覽

PDO中取得結果集之fetchAll()方法詳解

#fetchAll()方法是取得結果集的所有行,傳回一個包含結果集中所有行的二進制數組!

那麼在上一篇《PDO中取得結果集之fetch()方法詳解》中,我們介紹了fetch()方法取得結果集,我們今天將要介紹的fetchAll( )方法與上一個方法fetch()類似,但是此方法只需要呼叫一次就可以取得結果集中的所有行,並賦給傳回的陣列(二維)。

fetchAll()方法的語法格式如下:

array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )

參數fetch_style:控制結果集中資料的回傳方式,可選值如下表:

##關聯陣列形式# PDO::FETCH_NUM數字索引數組形式PDO::FETCH_BOTH兩者陣列形式都有,這是預設的PDO::FETCH_OBJ依照物件的形式,類似先前的mysql_fetch_object()PDO::FETCH_BOUND#以布林值的形式傳回結果,同時將取得的列值賦給bindParam()方法中指定的變數PDO::FETCH_LAZY以關聯數組、數字索引數組和物件3種形式傳回結果。
說     明
#PDO::FETCH_ASSOC
參數 column_index:欄位的索引!

其傳回值是一個包含結果集中所有資料的二維數組。

下面我們透過fetchAll()方法取得結果集中的所有行,並且透過for 語句讀取二維數組中的數據,完成資料庫中資料的循環輸出,具體步驟如下:

先建立php文件,透過PDO 連接MySQL 資料庫,然後定義SELECT查詢語句,應用prepare()和execute()方法執行查詢操作,接著,透過fetchAll()方法傳回結果集中的所有行,最後使用for 語句完成結果集中所有資料的循環輸出,程式碼如下:

<?php
header("Content-Type:text/html; charset=utf-8");    //设置页面的编码格式
$dbms = "mysql";                                  // 数据库的类型
$dbName ="php_cn";                                //使用的数据库名称
$user = "root";                                   //使用的数据库用户名
$pwd = "root";                                    //使用的数据库密码
$host = "localhost";                              //使用的主机名称
$dsn  = "$dbms:host=$host;dbname=$dbName";
try{
    $pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
    $query="select * from user";//需要执行的sql语句
    $res=$pdo->prepare($query);//准备查询语句
    $res->execute();            //执行查询语句,并返回结果集
    ?>
    <table border="1" width="500">
        <tr>
            <td height="22" align="center" valign="middle">id</td>
            <td height="22" align="center" valign="middle">用户名</td>
            <td height="22" align="center" valign="middle">密码</td>
        </tr>
        <?php
  $result=$res->fetchAll(PDO::FETCH_ASSOC) ;        // 获取结果集中的所有数据。
        for ($i=0;$i<count($result);$i++){          //循环读取二维数组中的数据。
        ?>
        <tr>
        <td height="22" align="center" valign="middle"><?php echo $result[$i][&#39;id&#39;];?></td>
        <td height="22" align="center" valign="middle"><?php echo $result[$i][&#39;username&#39;];?></td>
        <td height="22" align="center" valign="middle"><?php echo $result[$i][&#39;password&#39;];?></td>
        </tr>
<?php
    }
}catch(Exception $e){
    die("Error!:".$e->getMessage().&#39;<br>&#39;);
}
?>
</table>

輸出的結果如下:

PDO中取得結果集之fetchAll()方法詳解

#關於PDO中取得結果集的fetchAll()方法我們就先介紹到這裡,該方法跟我們之前介紹的fetch()方法類似,大家千萬不要用錯了,下一篇文章我們為大家接續介紹PDO中獲取結果集的第三種方法,fetchColumn()方法,具體請閱讀《

PDO中取得結果集之fetchColumn()方法詳解》!

以上是PDO中取得結果集之fetchAll()方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn