3. Những thư viện chính
3.3.9. Một số phương thức trợ giúp
Trang 59 Cú pháp:
$this->db->insert_id()
Phương thức này trả về số ID khi chèn một dòng mới v{o cơ sở dữ liệu.
affected_rows()
Cú pháp
$this->db->affected_rows()
Phương thức affected_rows() trả về số dòng dữ liệu được t|c động khi thực hiện các câu lệnh INSERT, UPDATE, DELETE. Trong MySQL, khi thực hiện truy vấn DELETE FROM TABLE, số dòng trả về luôn bằng 0. Tuy nhiên, thư viện Database trong CodeIgniter có thể trả về đúng số dòng đ~ được xóa.
count_all()
Cú pháp
$this->db->count_all(string $tableName)
Phương thức count_all() trả về số dòng dữ liệu đang có của một bảng.
platform()
Cú pháp
$this->db->platform()
Phương thức platform() trả về tên hệ quản trị cơ sở dữ liệu đang được sử dụng (MySQL, MSSQL, Postgres SQL…).
version()
Cú pháp
$this->db->version()
Phương thức version() trả về phiên bản hệ quản trị cơ sở dữ liệu đang sử dụng.
last_query() Cú pháp
$this->db->last_query()
Trang 60 Phương thức last_query() trả về câu truy vấn vừa được thực hiện.
insert_string()
Cú pháp
$this->db->insert_string(string $tableName, array $data)
Phương thức insert_string() sẽ tạo ra câu lệnh INSERT. Phương thức này nhận tên bảng sẽ thêm dữ liệu l{m đối số thứ nhất, và mảng chứa dữ liệu cần thêm l{m đối số thứ hai. Ví dụ:
$data = array('name' => $name, 'email' => $email, 'url' => $url);
$str = $this->db->insert_string('table_name', $data);
// Kết quả
INSERT INTO table_name (name, email, url) VALUES ('Rick', 'rick@example.com', 'example.com')
update_string()
Cú pháp
$this->db->update_string(string $tableName, array $data, array $where)
Phương thức insert_string() sẽ tạo ra câu lệnh UPDATE. Phương thức này nhận tên bảng sẽ thêm dữ liệu l{m đối số thứ nhất, mảng chứa dữ liệu cần thêm l{m đối số thứ hai và mảng chứa c|c điều kiện cập nhật l{m đối số thứ ba. Ví dụ:
$data = array('name' => $name, 'email' => $email, 'url' => $url);
$where = "author_id = 1 AND status = 'active'";
$str = $this->db->update_string('table_name', $data, $where);
// Kết quả
UPDATE table_name SET name = 'Rick', email = 'rick@example.com', url = 'example.com' WHERE author_id = 1 AND status = 'active'
Hai phương thức insert_string() và update_string() được dùng để tạo ra chuỗi truy vấn, giúp tạo câu lệnh nhanh chóng. Dữ liệu được truyền v{o hai phương thức n{y đều được escape, giúp cho truy vấn an to{n hơn.
list_tables() Cú pháp
$this->db->list_tables()
Trang 61 Phương thức list_tables() trả về một mảng chứa các tên các bảng của cơ sở dữ liệu đang kết nối.
table_exists()
Cú pháp
$this->db->table_exits(string $tableName)
Phương thức table_exists() giúp kiểm tra một bảng có tồn tại trong cơ sở dữ liệu đang kết nối hay không.
list_fields()
Cú pháp
$this->db->list_fields(string $tableName)
Phương thức list_fields() trả về một mảng chứa tên c|c trường của bảng truyền vào.
Ngo{i ra, phương thức n{y cũng có thể được sử dụng để lấy c|c trường được trả về trong một truy vấn, chẳng hạn:
$query = $this->db->query('SELECT * FROM some_table');
foreach ($query->list_fields() as $field) {
echo $field;
}
field_exists()
Cú pháp
$this->db->field_exits(string $fieldName, string $tableName)
Phương thức field_exists() giúp kiểm tra một trường có tồn tại trong một bảng nào đó không.
field_data()
Cú pháp
$this->db->field_data(string $tableName)
Phương thức field_date() trả về một mảng c|c đối tượng chứa thông tin về c|c trường trong một bảng n{o đó.
Trang 62
$fields = $this->db->field_datắtable_namé);
foreach ($fields as $field) {
echo $field->name;
echo $field->type;
echo $field->max_length;
echo $field->primary_key;
}
Trong đó:
name: tên trường
max_length: chiều dài dữ liệu tối đa của trường
primary_key: có giá trị là 1 nếu trường này là khóa chính
type: kiểu dữ liệu của trường call_function()
Cú pháp
$this->db->call_function(string $functionName[, mixed $param1, mixed $param2…])
Phương thức call_function() cho phép ta sử dụng một hàm dựng sẵn của PHP nhưng không được hỗ trợ trong CodeIgniter. Ví dụ, để sửa dụng hàm mysql_get_client_info()
vốn không được hỗ trợ trong CodeIgniter, ta thực hiện:
$this->db->call_function('get_client_info');
Khi sử dụng phương thức call_function(), ta không cần thiết phải truyền tiền tố
mysql_. Các tiền tố này sẽ được tự động thêm vào, dựa vào hệ quản trị cơ sở dữ liệu đang kết nối. Điều này giúp nâng cao khả năng mở rộng của chương trình.