1. 1. Khởi tạo Zend_Db
$db = Zend_Db::factory('Pdo_Mysql', array ('host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'company_2'));
2. setFetchMode ($constant)
FETCH_OBJ Trả kết quả truy vấn thành các đối tượng
FETCH_ASSOC Trả kết quả truy vấn thành những mảng liên tục, giữ nguyên tên của
field
FETCH_NUM Trả kết quả truy vấn thành mảng, tên field sẽ được chuyển thành số
liên tục
FETCH_BOTH Trả kết quả truy vấn thành mảng, mảng bao gồm kết quả của 2 kiểu
FETCH_ASSOC và FETCH_NUM
Ví dụ 2.1: Chuyển kết quả truy vấn thành một mảng chứa các tên field
$db = Zend_Db::factory('Pdo_Mysql', array ('host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'company_2'));
$db->setFetchMode(Zend_Db::FETCH_OBJ);
3. fetchAll($sql,$bind)
- Phương thức fetchAll là phương thức để lấy dữ liệu trong CSDL. Nó tương tự
như câu lệnh Select của MySQL
Tham số:
$sql: Câu lệnh truy vấn
$bind: Mảng giá trị truyền vào khi truy vấn
Ví dụ 3.1: Liệt kê những thành viên có group_id = g002 và có member_status = 1
MySQL query
$sql = "SELECT member_id, member_name, user_name
FROM members
WHERE group_id = 'g002'
AND member_status = 1";
mysql_query($sql);
Zend_Db
$sql = "SELECT member_id, member_name, user_name
FROM members
WHERE group_id = 'g002'
AND member_status = 1";
$db->fetchAll($sql);
Ví dụ 3.2: Liệt kê những thành viên có group_id = g002 và có member_status = 1
(truyền tham số)
2. MySQL query
$group_id = 'g002';
$member_status = 1;
$sql = "SELECT member_id, member_name, user_name
FROM members
WHERE group_id = '" . $group_id . "'
AND member_status = " . $member_status;
mysql_query($sql);
Zend_Db
$sql = "SELECT member_id, member_name, user_name
FROM members
WHERE group_id = ?
AND member_status = ?";
$db->fetchAll($sql,array('g002',1));
4. fetchAssoc ($sql,$bind)
- Phương thức fetchAssoc tương tự như fetchAll là phương thức để lấy dữ liệu
trong CSDL nhưng nó sẽ trả về một mảng dữ liệu cho dù setFetchMode() ở chế
độ nào đi nữa
Tham số:
$sql: Câu lệnh truy vấn
$bind: Mảng giá trị truyền vào khi truy vấn
Ví dụ 4.1: Liệt kê những thành viên có group_id = g002 và có member_status = 1
(truyền tham số)
$db->setFetchMode(Zend_Db::FETCH_OBJ);
$sql = "SELECT member_id, member_name, user_name
FROM members
WHERE group_id = ?
AND member_status = ?";
$db->fetchAssoc($sql,array('g002',1));
5. fetchCol ($sql,$bind)
- Phương thức fetchCol là phương thức để lấy dữ liệu trong CSDL nhưng nó chỉ trả
về giá trị của field đầu tiên trong kết quả truy vấn
Tham số:
$sql: Câu lệnh truy vấn
$bind: Mảng giá trị truyền vào khi truy vấn
Ví dụ 5.1: Liệt kê mã thành viên có group_id = g002 và có member_status = 1
(truyền tham số)
$sql = "SELECT *
FROM members
WHERE group_id = ?
AND member_status = ?";
$db-> fetchCol($sql,array('g002',1));
3. 6. fetchPairs($sql,$bind)
- Phương thức fetchPairs giống phương thức fetchCol để lấy dữ liệu trong CSDL
nhưng nó chỉ trả về giá trị của field thứ 2 trong kết quả truy vấn
Tham số:
$sql: Câu lệnh truy vấn
$bind: Mảng giá trị truyền vào khi truy vấn
Ví dụ 6.1: Liệt kê mã thành viên có group_id = g002 và có member_status = 1
(truyền tham số)
$sql = "SELECT *
FROM members
WHERE group_id = ?
AND member_status = ?";
$db-> fetchPairs($sql,array('g002',1));
7. fetchRow($sql,$bind)
- Phương thức fetchRow là phương thức để lấy dữ liệu trong CSDL nhưng nó chỉ
trả về một dòng dữ liệu duy nhất
Tham số:
$sql: Câu lệnh truy vấn
$bind: Mảng giá trị truyền vào khi truy vấn
Ví dụ 7.1: Liệt kê mã thành viên có group_id = g002 và có member_status = 1
(truyền tham số)
$sql = "SELECT *
FROM members
WHERE group_id = ?
AND member_status = ?";
$db-> fetchRow($sql,array('g002',1));
8. fetchOne ($sql,$bind)
- Phương thức fetchOne là phương thức để lấy dữ liệu trong CSDL nhưng nó chỉ
trả về một giá trị duy nhất
Tham số:
$sql: Câu lệnh truy vấn
$bind: Mảng giá trị truyền vào khi truy vấn
Ví dụ 8.1:
$sql = "SELECT *
FROM members
WHERE group_id = ?
AND member_status = ?";
$db-> fetchOne($sql,array('g002',1))
4. 9. insert($table, $bind)
- Phương thức insert là phương thức để đưa dữ liệu vào CSDL
Tham số:
$table: tên bảng
$bind: Mảng giá trị đưa vào CSDL
Ví dụ 9.1: Thêm một dòng dữ liệu vào bảng groups
$data = array(
'group_id' => 'g004',
'group_name' => 'Nghien cuu',
'group_status' => 1
);
$db->insert('members', $data);
10. lastInsertId ($table, $primaryKey)
- Phương thức lastInsertId là phương thức lấy ID của một record vừa được thêm
vào bằng phương thức insert()
Tham số:
$table: tên bảng
$primaryKey: Khóa chính của bảng
Ví dụ 10.1: Thêm một dòng dữ liệu vào bảng members
$data = array(
'member_name' => 'Pham Vu Khanh',
'user_name' => 'KhanhPham',
'email' => 'vukhanh2212@gmail.com',
'password' => md5('123456'),
'register_date' => date('Y-m-d 00:00:00'),
'member_status' => 1,
'group_id' => 'g001'
);
$db->insert('members', $data);
echo '<br>' . $id = $db->lastInsertId();
11. update($table, $data,$where)
- Phương thức update là phương thức để cập nhật dữ liệu vào CSDL
Tham số:
$table: tên bảng
$data: Mảng giá trị đưa vào CSDL
$where: điều kiện để cập nhật
Ví dụ 11.1: Thêm một dòng dữ liệu vào bảng groups
$where = " group_id = 'g004'";
5. $data = array(
'group_name' => 'Research',
'group_status' => 1
);
$db->update('groups', $data, $where);
12. quote($value, $type = null)
- Phương thức quote() là phương thức sử để sửa các dấu nháy đơn (‘) thành ( ’)
trước khi đưa vào câu truy vấn Select. Hoặc ép kiểu thành dạng số INT hoặc
Float. Đây là một phương thức hỗ trợ để trách các lỗ Sql injection nguy hiểm.
Tham số:
$value: tên bảng
$type: Kiểu giá trị của $value (INTEGER – STRING – FLOAT)
Ví dụ 12.1: Tìm thành viên có tên “O’Reilly” trong bảng member
$memberName = $db->quote("O'Reilly",STRING);
// SELECT * FROM members WHERE member_name = 'O'Reilly'
$sql = 'SELECT *
FROM members
WHERE member_name = ' . $memberName;
$result = $db->fetchRow($sql);
Ví dụ 12.2: Tìm thành viên có member_id “3’ ” trong bảng member
$memberID = $db->quote("3' ",INTEGER);
//SELECT * FROM members WHERE member_id = 3
$sql = 'SELECT *
FROM members
WHERE member_id = ' . $memberID;
$result = $db->fetchRow($sql);