Tải bản đầy đủ (.pdf) (42 trang)

Bài 4: Làm việc với Database trong Yii framework

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (767.59 KB, 42 trang )

Bài 4: Làm vi c v i Database trong

Yii framework

Bài 4: Làm vi c v i Database trong Yii


M c tiêu bài h c
 Gi i thi u t ng quan v Database trong Yii framework
 Tìm hi u các v n :

i t ng truy c p database
• S d ng Query Builder
• S d ng Active Record
• Quan h trong Active Record
• Di chuy n C s d li u

Bài 4: Làm vi c v i Database trong Yii

2


Gi i thi u Database trong

Yii framework

Bài 4: Làm vi c v i Database trong Yii

3



Database trong Yii?
c xây d ng trên nh c a
i t ng PDO,
i t ng truy
c p d li u trong Yii (DAO) cho phép truy c p vào nhi u h
qu n tr c s d li u khác nhau trên cùng m t giao di n
 u i m: có th d dàng chuy n qua DBMS khác mà không
c n s a mã truy c p d li u
 Yii Query Builder cung c p ph ng pháp h ng
i t ng
xây d ng các truy v n SQL, giúp gi m nguy c t n công
b i SQL injection.
 Yii Active Record (AR) th c hi n nh m t cách ti p c n r ng
rãi thông qua Object-Relational Mapping (ORM), ti p t c
n gi n hoá l p trình c s d li u.
 Yii AR lo i b công vi c l p i l p l i vi t nh ng câu l nh
SQL mà ch y u s d ng CRUD (create, read, update, delete)
Bài 4: Làm vi c v i Database trong Yii

4


it

ng truy c p d li u

Yii framework

Bài 4: Làm vi c v i Database trong Yii


5


it

ng truy c p d li u trong Yii?

i t ng truy c p d li u (DAO) cung c p m t API chung
truy c p d li u
c l u tr trong nhi u h th ng
qu n lý c s d li u khác nhau (DBMS)
Yii DAO bao g m các l p sau:
•CDbConnection: i di n cho m t k t n i n m t c
s d li u.
•CDbCommand: i di n cho m t câu l nh SQL
th c
hi n i v i m t c s d li u.
•CDbDataReader:
i di n cho m t dòng chuy n ti p
ch s c a các hàng t m t t p h p k t qu truy v n.
•CDbTransaction: i di n cho m t giao d ch DB.

Bài 4: Làm vi c v i Database trong Yii

6


Xây d ng k t n i c s d li u trong Yii?
Có th s d ng các lo i CSDL v i chu i k t n i sau:


T o k t n i nh sau:

Bài 4: Làm vi c v i Database trong Yii

7


Xây d ng k t n i c s d li u trong Yii?
s d ng database, ta c n c u hình nh
main.php

sau trong

truy c p vào database, ta dùng câu l nh: Yii::app()->db
Bài 4: Làm vi c v i Database trong Yii

8


Th c thi các câu l nh

Yii framework

Bài 4: Làm vi c v i Database trong Yii

9


Xây d ng k t n i c s d li u trong Yii?
Khi m t k t n i c s d li u

c thi t l p, các câu l nh SQL
có th
c th c hi n b ng cách s d ng CDbCommand.
Ví d v i câu l nh t o:
G i CDbConnection :: createCommand () v i câu l nh SQL
quy nh:

Bài 4: Làm vi c v i Database trong Yii 10


Xây d ng k t n i c s d li u trong Yii?
th c thi câu l nh qua CDbCommand có 2 cách:
execute(): th c hi n các câu l nh Insert, Update, Delete. N u
thành công s tr v s l ng các dòng b nh h ng
query(): th c hi n câu l nh Select tr v các dòng d li u.
N u thành công s tr v m t th hi n c a CDbDataReader.
Ngoài ra ta còn có th dùng queryXXX()

Bài 4: Làm vi c v i Database trong Yii 11


c d li u t k t qu truy v n trong Yii?
Ta dùng CDbDataReader::read()
c t ng dòng d li u
t k t qu truy v n CDbCommand::query()

L u ý: Không gi ng nh query(), queryXXX() tr l i d li u
tr c ti p. Ví d , queryRow() tr v m t m ng i di n cho
hàng u tiên c a k t qu truy v n.


Bài 4: Làm vi c v i Database trong Yii 12


S d ng giao d ch trong Yii?
 Khi m t ng d ng th c thi m t vài câu truy v n, m i l n
c ho c ghi thông tin trong c s d li u,
m b o
r ng c s d li u không sai v i các truy v n th c hi n thì
m t giao d ch m b o toàn v n câu l nh s
c s d ng

s d ng giao d ch chúng ta s d ng CDbTransaction
 S d ng giao d ch trong các tr ng h p sau:
•B t u giao d ch.
•Th c hi n truy v n t ng b c m t: B t k c p nh t nào vào
c s d li u u không th nhìn th y.
•Cam k t giao d ch: C p nh t s
c hi n th trong CSDL
n u giao d ch thành công.
•N u m t trong nh ng truy v n không thành công, toàn b
giao d ch
c cu n l i (roll back)
Bài 4: Làm vi c v i Database trong Yii 13


S d ng giao d ch trong Yii?
Ví d :

Bài 4: Làm vi c v i Database trong Yii 14



S d ng tham s trong Yii?
Ta s d ng 2 ph ng th c sau:
•CDbCommand::bindParam()
•CDbCommand::bindValue()

Bài 4: Làm vi c v i Database trong Yii 15


G n k t v i c t d li u trong Yii?
Khi l y k t qu truy v n, ng i ta c ng có th liên k t các
c t v i các bi n PHP
l y d li u.

Bài 4: Làm vi c v i Database trong Yii 16


S d ng Query Builder

Yii framework

Bài 4: Làm vi c v i Database trong Yii 17


Query Builder trong Yii?
Ví d

Truy v n và gán tham s :

Bài 4: Làm vi c v i Database trong Yii 18



Chu n b Query Builder trong Yii?
Chu n b câu l nh:

K t qu truy v n d li u:
select(): xác nh câu l nh truy v n
selectDistinct(): xác nh truy v n và b t c DISTINCT
from(): xác nh truy v n t b ng nào
where(): xác nh i u ki n WHERE c a câu truy v n
andWhere (): g n thêm i u ki n WHERE

Bài 4: Làm vi c v i Database trong Yii 19


Chu n b Query Builder trong Yii?
K t qu truy v n d li u:
 orWhere(): g n thêm i u ki n WHERE c a truy v n v i toán t OR
 join(): thêm các b ng c n join
 leftJoin(): thêm b ng left join
 rightJoin(): thêm b ng right join
 crossJoin(): thêm b ng cross join
 group(): xác nh GROUP BY m t ph n c a truy v n
 having(): quy nh c th ph n HAVING c a truy v n
 order(): xác nh ORDER BY m t ph n c a truy v n
 limit(): xác nh LIMIT c a các truy v n
 offset(): xác nh m t ph n OFFSET c a các truy v n
 union(): g n thêm m t o n truy v n UNION

Bài 4: Làm vi c v i Database trong Yii 20



Select, selectDistinct trong Yii?
Ví d

Bài 4: Làm vi c v i Database trong Yii 21


i u ki n Where, andWhere, orWhere trong Yii?
Ví d

Bài 4: Làm vi c v i Database trong Yii 22


i u ki n Where, andWhere, orWhere trong Yii?
Ví d

andWhere
orWhere

Bài 4: Làm vi c v i Database trong Yii 23


i u ki n order, limit, offset trong Yii?
Order

Limit và offset

Bài 4: Làm vi c v i Database trong Yii 24



i u ki n join trong Yii?
Join

Bài 4: Làm vi c v i Database trong Yii 25


×