PHP PDO獲取結果集


一、介紹PDO獲取結果集,不得不介紹一下PDO是如果執行SQL語句,一般情況下分三種,

1.query()方法

   query()方法通常用於返回執行查詢后的結果集。語法是這樣的:PDOStatement PDO::query(string sql);

   參數sql就很容易理解了,就是要執行的sql語句。

2.prepare()方法和execute()方法

   prepare()是預處理語句的其中一個方法,通常來做查詢的准備工作,然后,execute()來執行查詢。

以上就簡單介紹這三種情況。

二、PDO如何獲取結果集

   pdo獲取結果集有三種方法,分別是fetch()、fetchAll()和fetchColumn()方法。

 首先,你先在數據庫里面建一個表,命名為t_user。

 

   CREATE TABLE `t_user` (
   `userid` int(11) NOT NULL,
   `username` varchar(25) DEFAULT NULL,
   `usersex` varchar(6) DEFAULT NULL,
  `userage` int(6) DEFAULT NULL,
   PRIMARY KEY (`userid`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  然后,插入數據,很簡單,如下:  

 INSERT INTO `t_user` VALUES ('1', 'li', 'boy', '23');
 INSERT INTO `t_user` VALUES ('2', 'nadia', 'gril', '20');
 INSERT INTO `t_user` VALUES ('3', 'wang', 'boy', '55');

 下面就簡單介紹一下每個方法是如何使用的。

 

   1.fetch()方法

      fecth()方法是獲取結果集的下一行數據。

      表一:fetch_style控制結果集返回方式的可選值

      

PDO::FETCH_ASSOC 關聯數組形式。
PDO::FETCH_NUM 數字索引數組形式。
PDO::FETCH_BOTH 兩者數組形式都有,這是默認的。
PDO::FETCH_OBJ 按照對象的形式,類似於以前的mysql_fetch_object()函數。
PDO::FETCH_BOUND 以布爾值的形式返回結果,同時將獲取的列值賦給bindParam()方法中指定的變量。
PDO::FETCH_LAZY 以關聯數組、數字索引數組和對象3種形式返回結果。

    ftech()方法的具體代碼如下所示:

    

   <table border='1'>
    <?php
      $dbms = 'mysql';//選擇mysql數據庫
      $host = '127.0.0.1';//數據庫主機名
      $dbName = 'dbtext';//使用的數據庫
      $user = "";//數據庫連接用戶名
      $pwd = "";//數據庫連接密碼
      $dsn = "$dbms:host=$host;dbname=$dbName";
      try {
        $pdo = new PDO($dsn, $user, $pwd);//初始化一個PDO對象,創建數據庫連接對象$pdo
        $query = "select * from t_user";
        $result = $pdo->prepare($query);
        $result->execute();
        while ($res=$result->fetch(PDO::FETCH_ASSOC)){?>
      <tr>
      <td><?php echo $res['userid'];?></td>
      <td><?php echo $res['username'];?></td>
      <td><?php echo $res['userage'];?></td>
      <td><?php echo $res['usersex'];?></td>
      </tr>
    <?php }
    }catch (Exception $e){
    die("error!!!".$e->getMessage()."<br>");
    }
    ?>
  </table>

   結果如下圖1:

   

                                  圖1

  2.fetchAll()方法

     從單詞上可以看的很清楚,fetchAll()方法是為了獲取結果集的所有行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM