2016-11-09 / JSN / 0 Comments / 767 次瀏覽
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();
}
2013-05-28 / JSN / 0 Comments / 1,005 次瀏覽
在config/database.php設定如下
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'mysql:host=localhost'; //如果使用dbdriver使用mysql或mysqli就填寫localhost即可。使用PDO寫法較不一樣。
$db['default']['username'] = '資料庫使用者名稱';
$db['default']['password'] = '資料庫使用者密碼';
$db['default']['database'] = '資料庫名稱';
$db['default']['dbdriver'] = 'pdo'; //使用PDO
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
比較須要注意的就是
$db[‘default’][‘hostname’]
$db[‘default’][‘dbdriver’]
的地方~