中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP數據庫怎么使用PDO獲取查詢結果

發布時間:2021-10-28 15:34:30 來源:億速云 閱讀:192 作者:iii 欄目:編程語言

這篇文章主要介紹“PHP數據庫怎么使用PDO獲取查詢結果”,在日常操作中,相信很多人在PHP數據庫怎么使用PDO獲取查詢結果問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PHP數據庫怎么使用PDO獲取查詢結果”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

PHP數據庫怎么使用PDO獲取查詢結果

只要成功執行SELECT 查詢,就都會有結果集對象生成,不管是使用PDO對象中的qurey()方法還是使用 prepare() execute() 等方法結合的預處理語句,執行 SELECT 查詢都會得到結果集對象 PDOStatement。

通過 PDOStatement 類中的方法就可以獲取 SELECT 語句的查詢結果,接下來我們就來看一下PDOStatement 類中常見的幾個獲取結果集數據的方法。

fetch() 方法

fetch() 方法可以從一個 PDOStatement 對象的結果集中獲取當前行的內容,并將結果集指針移至下一行,當到達結果集末尾時返回 FALSE,該方法的語法格式如下:

PDOStatement::fetch([int $fetch_style[, int $cursor_orientation = PDO::FETCH_ORI_NEXT[, int $cursor_offset = 0]]])

其中需要注意的是:

$fetch_style  表示可選參數,用來控制下一行如何返回給調用者。其中這個參數的值必須是 PDO::FETCH_* 系列常量中的一個,如下所示:

  • PDO::FETCH_ASSOC   表示返回一個關聯數組;

  • PDO::FETCH_BOTH(默認)   表示返回一個索引數組加關聯數組混合的數組

  • PDO::FETCH_BOUND   表示返回 TRUE,并分配結果集中的值給 PDOStatement::bindColumn() 方法綁定的 PHP 變量

  • PDO::FETCH_OBJ   表示返回一個屬性名對應結果集列名的匿名對象。

  • PDO::FETCH_CLASS:返回一個請求類的新實例,映射結果集中的列名到類中對應的屬性名。

如果 fetch_style 包含 PDO::FETCH_CLASSTYPE   例如:PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE,則類名由第一列的值決定;

$cursor orientation   表示可選參數,用來確定當對象是一個可滾動的游標時應當獲取哪一行。此值必須是 PDO::FETCH_ORI_* 系列常量中的一個,默認為 PDO::FETCH_ORI_NEXT。

$offset   表示可選參數,當參數 $cursor_orientation 設置為 PDO::FETCH_ORI_ABS 時,此值指定結果集中想要獲取行的絕對行號;當參數 $cursor_orientation 設置為 PDO::FETCH_ORI_REL 時,此值指定想要獲取行相對于調用 PDOStatement::fetch() 前游標的位置。

接下來我們通過示例來看一下使用 fetch() 方法,獲取 SELECT 語句的查詢結果。示例如下:

<?php
    $dsn  = 'mysql:host=127.0.0.1;dbname=test';
    $user = 'root';
    $pwd  = 'root';
    try{
        $pdo = new PDO($dsn,$user,$pwd);
        $sql = 'SELECT name,age,sex FROM user WHERE age = \'12\'';
        $res = $pdo -> query($sql);
        echo '<pre>';
        while ($row = $res -> fetch(PDO::FETCH_ASSOC)){
            print_r($row);
        }
    }catch(PDOException $e){
        echo '數據庫連接失敗:'.$e -> getMessage();
    }
?>

輸出結果:

PHP數據庫怎么使用PDO獲取查詢結果

由此我們便通過fetch() 方法完成了從一個 PDOStatement 對象的結果集中獲取當前行的內容。$offset   表示可選參數,當參數 $cursor_orientation 設置為 PDO::FETCH_ORI_ABS 時,此值指定結果集中想要獲取行的絕對行號;當參數 $cursor_orientation 設置為 PDO::FETCH_ORI_REL 時,此值指定想要獲取行相對于調用 PDOStatement::fetch() 前游標的位置。

接下來我們看一下fetchAll() 方法的應用。

fetchAll() 方法

fetchAll() 方法與上面介紹的 fetch() 方法類似,但是該方法只需要調用一次就可以獲取結果集中的所有行,并賦給返回的數組。該方法的語法格式如下:

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

其中需要注意的是:

$fetch_style  表示可選參數,用來控制返回數組的內容,默認值為 PDO::FETCH_BOTH。該參數的取值與 fetch() 方法相同

$fetch_argument   根據 $fetch_style 參數的值,此參數有不同的意義:

  • PDO::FETCH_COLUMN:返回指定以 0 開始索引的列;

  • PDO::FETCH_CLASS:返回指定類的實例,映射每行的列到類中對應的屬性名;

  • PDO::FETCH_FUNC:將每行的列作為參數傳遞給指定的函數,并返回調用函數后的結果。

$ctor_args   表示當 $fetch_style 參數為 PDO::FETCH_CLASS 時,自定義類的構造函數的參數。

接下來我們通過示例來看一下fetchAll() 方法的實際應用,示例如下:

<?php
    $dsn  = 'mysql:host=127.0.0.1;dbname=test';
    $user = 'root';
    $pwd  = 'root';
    try{
        $pdo  = new PDO($dsn,$user,$pwd);
        $sql  = 'SELECT name,age,sex FROM user WHERE sex = \'男\'';
        $res  = $pdo -> query($sql);
        $data = $res -> fetchAll(PDO::FETCH_ASSOC);
        echo '<pre>';
        print_r($data);
    }catch(PDOException $e){
        echo '數據庫連接失敗:'.$e -> getMessage();
    }
?>

輸出結果:

PHP數據庫怎么使用PDO獲取查詢結果

由此我們便通過使用 fetchAll() 方法,獲取 SELECT 語句的查詢結果。$ctor_args   表示當 $fetch_style 參數為 PDO::FETCH_CLASS 時,自定義類的構造函數的參數。

接下來我們看一下fetchColumn() 方法的使用。

fetchColumn() 方法

fetchColumn() 方法可以獲取結果集中當前行指定字段的值,其語法格式如下:

PDOStatement::fetchColumn([int $column_number = 0])

其中需要注意的是:

參數 $column_number表示的是想從行里取回的列的索引數字。

如果該參數沒有取值,也就是如果沒有提供值,那么則會從第一列開始獲取。

接下來我們通過示例來看一下fetchColumn() 方法的使用,示例如下:

<?php
    $dsn  = 'mysql:host=127.0.0.1;dbname=test';
    $user = 'root';
    $pwd  = 'root';
    try{
        $pdo = new PDO($dsn,$user,$pwd);
        $sql = 'SELECT name,age,sex FROM user';
        $res = $pdo -> query($sql);
        echo '當前行第一列的值為:'.$res -> fetchColumn().'<br>';
        echo '當前行第三列的值為:'.$res -> fetchColumn(2).'<br>';
        echo '當前行第二列的值為:'.$res -> fetchColumn(1).'<br>';
    }catch(PDOException $e){
        echo '數據庫連接失敗:'.$e -> getMessage();
    }
?>

輸出結果:

PHP數據庫怎么使用PDO獲取查詢結果

由此我們便通過使用 fetchColumn() 方法,獲取指定字段的值。

到此,關于“PHP數據庫怎么使用PDO獲取查詢結果”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南陵县| 平和县| 宝坻区| 五大连池市| 东平县| 奉化市| 榆中县| 阜平县| 龙岩市| 新建县| 韶关市| 田东县| 阿合奇县| 孟村| 莆田市| 渑池县| 天长市| 永年县| 北票市| 基隆市| 疏附县| 安陆市| 阿拉善左旗| 南汇区| 曲阳县| 湘潭市| 藁城市| 桐城市| 罗平县| 古丈县| 平利县| 洪泽县| 广州市| 华宁县| 富阳市| 渑池县| 城口县| 邯郸县| 阿合奇县| 永清县| 左权县|