Diary of Duc

PHP – Cơ sở dữ liệu Mysqli

2017-09-22

Là ngôn ngữ lập trình Backend nền Web, PHP hiển nhiên phải hỗ trợ kết nối tới cơ sở dữ liệu, lập trình viên PHP sẽ vô dụng nếu không biết cách tương tác với cơ sở dữ liệu.

PHP cung cấp thư viện MYSQLi và PDO, MYSQLi chỉ kết nối được với MYSQL Database (Bài viết bên dưới), PDO hỗ trợ nhiều loại database (Khi nào có dịp mình sẽ viết bài chi tiết về loại này).

Với MYSQLi, bài viết sử dụng phương pháp hướng đối tượng để kết nối và tương tác đến cơ sở dữ liệu (database).

Kết nối tới 1 database

1
$con = new mysqli('localhost', 'root','', 'mysqli');

Giải thích:

* localhost: hostname sever. //thường mặc định là localhost
* root: tên của người dùng database. //tùy chỉnh
* '': mật khẩu của database, của mình không cài mật khẩu nên để trống. //tùy chỉnh
* mysqli: đây là tên database. //tùy chỉnh

Tạo bảng

1
2
3
4
5
6
7
8
9
$con->query("CREATE TABLE users (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
username varchar(30),
password varchar(45),
sex int(1),
phone int(20),
country varchar(50),
primary key(id)
)");

Giải thích:

Gọi tới phương thức query với tham số truyền vào CREATE TABLE users ( id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, username varchar(30), password varchar(45), sex int(1), phone int(20), country varchar(50), primary key(id) ) sẽ tạo ra 1 bảng mới tên “users” và khởi tạo các trường trong nó.

Thêm dữ liệu vào database

1
$con->query("INSERT INTO users(username, password, sex, phone, country) VALUES('Trang', '18b73acaee627c438c7e73ab32618e5c97065578', '0', '01671245299', 'VietNam')");

Giải thích:

Gọi tới phương thức query với tham số truyền vào INSERT INTO users(username, password, sex, phone, country) VALUES(‘Trang’, ’18b73acaee627c438c7e73ab32618e5c97065578′, ‘0’, ‘01671245299’, ‘VietNam’) sẽ thêm mới dữ liệu trong “VALUES” tương ứng với từng cột trong bảng “users” vừa tạo.

Truy vấn database

1
$con->query("SELECT * FROM users WHERE sex = 1");

Giải thích:

Gọi tới phương thức query với tham số truyền vào SELECT * FROM users WHERE sex = 1 sẽ lọc ra tất cả dữ liệu trong bảng “user” với giới tính là nam (sex = 1).

Thêm 1 cột

1
$con->query("ALTER TABLE users ADD verification int(1)");

Giải thích:

Tương tự như những câu truy vấn trên ,tham số truyền vào ALTER TABLE users ADD verification int(1) sẽ tạo 1 cột tên “verification” có kiểu int trong bảng “users”.

Cập nhật dữ liệu trong database

1
query("UPDATE users SET verification = 1 WHERE verification IS NULL");

Giải thích:

Truyền vào tham số UPDATE users SET verification = 1 WHERE verification IS NULL sẽ cập nhật tất cả giá trị trong cột “verification” thành “1” nếu nó “NULL” (rỗng) trong bảng “users”.

Xóa giá trị trong database

1
$con->query("DELETE FROM users WHERE id = 8");

Giải thích:

Truyền vào tham số DELETE FROM users WHERE id = 8 để xóa toàn bộ thông tin của một dòng có “id=8”.

Duyệt database

1
2
3
4
5
$query = $con->query("SELECT * FROM users WHERE sex = 1");

while ($row = $query->fetch_assoc()) {
echo $row['username'].": ".$row['country']."<br>";
}

Giải thích:

*Để duyệt database ta cần truy vấn database, tất cả dữ liệu truy vấn thành công được lưu trong một biến $query.
*Gọi tới phương thức fetch_assoc() để trả về giá trị của 1 lần truy vấn được lưu trong $query. Dùng “while” để trả về giá trị 1 lần truy vấn tiếp theo, kiểm tra cho đến khi nào không truy vấn được nữa (NULL) thì dừng. Mỗi lần truy vấn thành công thì in ra “username” và “country”.

Tags: php

URL QR