資料庫之DAO
資料庫之DAO
DAO (Data Access Object) 資料訪問物件是第一個物件導向的介面
–百度百科
CRUD
class IndexController extends CController{
public function actionCreate()
{
$rval = Yii::app()->db->createCommand()->insert('user',array(
'username'=>'blue' //傳入陣列不需要擔心注入 , yii自動會對陣列進行 引數繫結的操作寫入
));
}
public function actionDelete($id)
{
Yii::app()->db->createCommand()->delete('user','id=:id',array(':id'=>$id));
}
public function actionUpdate($id)
{
Yii::app()->db->createCommand()->update('user',array('username'=>'blue'),'id=:id',array(':id'=>$id));
}
//一維陣列 單條資料
public function actionReadRow($id)
{
$res = Yii::app()->db->createCommand()->select('username')->from('user')->where('id=:id',array(':id'=>$id))->queryRow();
var_dump($res);
}
//查詢列
//比如說 查詢的是所有的username
//返回的陣列是 array('姓名1','姓名2','姓名3')
public function actionReadColumn($id)
{
$res = Yii::app()->db->createCommand()->select('username')->from('user')->where('id=:id',array(':id'=>$id))->queryColumn();
var_dump($res);
}
//二維陣列 查詢所有
public function actionReadAll($id)
{
$res = Yii::app()->db->createCommand()->select('username')->from('user')->where('id=:id',array(':id'=>$id))->queryAll();
var_dump($res);
}
//查詢數量
//直接返回對應值,而不是陣列
public function actionReadScalar()
{
$res = Yii::app()->db->createCommand()->select('count(*)')->from('user')->queryScalar();
var_dump($res);
}
}
查詢條件
where,like,in,limit,order,group
public function actionWhere()
{
$connect = Yii::app()->db;
$res = $connect->createCommand()->select('*')->from('user')
->where('id<:id',array(':id'=>3))
->queryAll();
$res = $connect->createCommand()->select('*')->from('user')
->where('id>:lid and id < :mid',array(':lid'=>3,":mid"=>7))
->queryAll();
$res = $connect->createCommand()->select('*')->from('user')
->where('id > :lid',array(':lid'=>3))
->andWhere('id < :mid',array(':mid'=>7))
->queryAll();
$res = $connect->createCommand()->select('*')->from('user')
->where(array('and','id > :lid','id < :mid'),array(':lid'=>3,":mid"=>8))
->queryAll();
$res = $connect->createCommand()->select('*')->from('user')
->where(array('and','id > :lid','id < :mid'),array(':lid'=>3,":mid"=>8))
->queryAll();
$res = $connect->createCommand()->select('*')->from('user')
->where(array('in','id',array(3,4,5)))
//->where(array('not in','id',array(3,4,5)))
->queryAll();
$res = $connect->createCommand()->select('*')->from('user')
->where(array('like','username','%g%'))
// ->where(array('not like','username','%g%'))
// ->where(array('like','username',array('%g%','%o%')))
->queryAll();
$res = $connect->createCommand()->select('*')->from('user')
->where(array('and','id > :id','id < :mid',array('or','username = :user1','username = :user2')),
array(':id'=>4,
':mid'=>10,
'user1'=>'blue',
'user2'=>'green'
))
->queryAll();
$res = $connect->createCommand()->select('*')->from('user')
->where(array('like','username','%g%'))
->offset(1)
->limit(2)
->queryAll();
$res = $connect->createCommand()->select('*')->from('user')
->where(array('like','username','%g%'))
->order('id desc')
->queryAll();
$res = $connect->createCommand()->select('*,count(*)')->from('user')
->group('username')
->queryAll();
var_dump($res);
}
聯合查詢 (join)
public function actionJoin()
{
$res = Yii::app()->db->createCommand()
->select('*')
->from('user as u')
->join('city as c','u.city = c.id')
// ->leftJoin('city as c','u.city = c.id')
->queryAll();
var_dump($res);
}
事務(Transaction)
//yiiChina 例子
$transaction=$connection->beginTransaction();
try
{
$connection->createCommand($sql1)->execute();
$connection->createCommand($sql2)->execute();
//.... other SQL executions
$transaction->commit();
}
catch(Exception $e) // 如果有一條查詢失敗,則會丟擲異常
{
$transaction->rollBack();
}
相關文章
- 大資料圖資料庫之TAO資料庫大資料資料庫
- (資料庫之pymysql)資料庫MySql
- 資料庫之AR資料庫
- 國產資料庫調研之——AntDB資料庫資料庫
- 資料庫系統概述之國產資料庫資料庫
- SSH框架之dao層框架
- 資料庫升級之-資料泵資料庫
- 怎麼用工廠模式和DAO完成所有的對資料庫的基本操作模式資料庫
- 資料庫安全之金融資料庫
- MySQL資料庫之索引MySql資料庫索引
- luffy之資料庫配置資料庫
- Go之資料庫操作Go資料庫
- 資料庫之建立索引資料庫索引
- mongoDB資料庫之聚合MongoDB資料庫
- oracle 之資料庫核查Oracle資料庫
- 資料庫國產化實戰之達夢資料庫資料庫
- 資料庫系統概述之資料庫最佳化資料庫
- IOS資料儲存之Sqlite資料庫iOSSQLite資料庫
- IOS資料儲存之FMDB資料庫iOS資料庫
- MySQL預設資料庫之mysql庫MySql資料庫
- MySQL預設資料庫之sys庫MySql資料庫
- Postgresql10資料庫之更改資料庫的名稱SQL資料庫
- SequoiaDB資料庫之資料庫的配置與啟動資料庫
- 【轉】Oracle資料庫優化之資料庫磁碟I/OOracle資料庫優化
- 資料庫升級之-XTTS資料庫TTS
- 資料庫設計之思考資料庫
- 資料庫被刪之反思資料庫
- 資料庫操作之遊標資料庫
- python之資料庫支援Python資料庫
- 不同Oracle資料庫之間的資料同步Oracle資料庫
- 異構資料庫之間資料作業資料庫
- 資料庫遷移之資料泵實驗資料庫
- 資料庫發展階段之資料庫系統階段資料庫
- 常見資料庫系統比較之Oracle資料庫(轉)資料庫Oracle
- oracle之 oracle database vault(資料庫保險庫)OracleDatabase資料庫
- Android資料儲存之SQLCipher資料庫加密AndroidSQL資料庫加密
- MySQL資料庫工具類之——DataTable批量加入MySQL資料庫(Net版)MySql資料庫
- 紹Oracle資料庫的最佳化之資料庫磁碟I/OOracle資料庫