php – PDO – 有趣的 PDO::FETCH_CLASS 用法

PDO 的 PDO::FETCH_CLASS 用法,可以讓你指定對應的 Class 類別,然後自由處理你的方法。我們來看這個例子就懂了

<?php

// 這是提供給 PDO 使用的
class Member
{
    // 拼湊字串
    public function title()
    {
        // 可以直接使用這三個屬性,是因為 PDO 會將資料庫的欄位,對應到 class 的屬性
        return "{$this->id} | {$this->account} | {$this->name}";
    }
}

try
{
    // 連接資訊 
    $pdo      = new PDO("mysql:host=localhost;dbname=ci_jsn", 'root', '');
    $pdo->query("set names utf8");
    $sql      = "select * from member limit 1";
    
    // 運行 SQL
    $query    = $pdo->query($sql);

    // 指定提取樣式(fetch_style)為 PDO::FETCH_CLASS,並將它對應到我們自訂的類別 Member
    $datalist = $query->fetchAll(PDO::FETCH_CLASS, "Member");
    
    foreach ($datalist as $datainfo)
    {
        // 我們呼叫自訂的方法 title()
        echo $datainfo->title(); // 27 | root | 最高管理員
    }

}
catch(Exception $e)
{
    // 發生錯誤會顯示
    echo $e->getMessage();
}

 


發表迴響