Bài 26: Kết nối Cơ Sở Dữ Liệu MYSQL Sử dụng MYSQLI
Trải qua 25 bài vừa qua thì chúng ta mới chỉ tìm hiểu râu ria bên ngoài các kiến thức về kỹ thuật lập trình nên có lẽ các bạn cảm thấy chưa HƯNG PHẤN , nên để các bạn không bị chán thì trong bài này chúng ta sẽ tìm hiểu cách kết nối vào CSDL MYSQL với php và một số hàm xử lý database nhé.
1. Tạo Database
Trước tiên chúng ta tạo một database để test đã nhé, các bạn vào phpmyadmin và tạo một cơ sở dữ liệu tên là demo và tạo một table tên là customer bằng cách chạy câu truy vấn sau:
CREATE TABLE IF NOT EXISTS `customer` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(200) COLLATE utf8_unicode_ci DEFAULT NULL, `phone` VARCHAR(200) COLLATE utf8_unicode_ci DEFAULT NULL, `address` VARCHAR(500) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ; INSERT INTO `customer` (`id`, `name`, `phone`, `address`) VALUES (1, 'Nguyen Van A', '0970 306 603', NULL), (2, 'Nguyen Van B', '0970 306 603', NULL), (3, 'Nguyen Van C', '0970 306 603', NULL), (4, 'Nguyen Van D', '0970 306 603', NULL);Chúng ta sẽ thao tác demo trên nó nhé.
2. Kết nối database với php
Để kết nối vào database ta sẽ dùng hàm mysqli_connect với cấu trúc như sau:
mysqli_connect($host, $user, $password, $database, $port, $socket). Trong đó:
- $host: là địa chỉ host của bạn, thông thường là localhost luôn
- $user: là tên đăng nhập vào database
- $password: là mật khẩu kết nối vào database
- $database: Tên database bạn chọn để xử lý
- $port: Cổng kêt nối
- $socket: Phương thức socket kết nối
Ví dụ:
$conn = mysqli_connect('localhost', 'root', 'vertrigo', 'demo') or die ('Không thể kết nối tới database');
Tất cả những tham số đó thì ta chỉ quan tâm đến 4 tham số đầu tiên, 2 tham số còn lại bạn khỏi truyền vào nhé. Còn đoạn code or die ('Không thể kết nối tới database') dùng cho trường hợp không thể kết nối tới CSDL thì sẽ in ra màn hình dòng thông báo đó.
3. Câu truy vấn lấy danh sách record
Bạn tạo file demo.php với nội dung như sau:
// Kết nối CSDL và lưu vào biến kết nối // Các tham số gồm: // - localhost: là tên server, thường mặc định là localhost luôn // - root: là tên đăng nhập vào database // - vertrigo: là mật khẩu đăng nhập vào database // - demo: Là database sẽ xử lý $conn = mysqli_connect('localhost', 'root', 'vertrigo', 'demo') or die ('Không thể kết nối tới database'); // Câu truy vấn $sql = 'SELECT * FROM CUSTOMER'; // Thực hiện câu truy vấn, hàm này truyền hai tham số vào là biến kết nối và câu truy vấn $result = mysqli_query($conn, $sql); // Nếu thực thi không được thì thông báo truy vấn bị sai if (!$result){ die ('Câu truy vấn bị sai'); } // Lặp qua kết quả và in ra ngoài màn hình // Vì các field trong database là id, name, phone, address nên // khi vardum mang sẽ có cấu trúc tương tự while ($row = mysqli_fetch_assoc($result)){ var_dump($row); } // Xóa kết quả khỏi bộ nhớ mysqli_free_result($result); // Sau khi thực thi xong thì ngắt kết nối database mysqli_close($conn);Để thực thi câu truy vấn bất kỳ thì ta dùng hàm mysqli_query, nếu câu truy vấn trả về danh sách thì ta sẽ dùng vòng lặp while để hiển thị nó ra. Chi tiết mình đã mô tả trong phần comment rồi nhé.
4. Câu truy vấn delete
Tương tự như phần 3, bạn sẽ viết một câu truy vấn delete và sau đó dùng hàm mysqli_query để thực hiện. Ví dụ:
$conn = mysqli_connect('localhost', 'root', 'vertrigo', 'demo') or die ('Không thể kết nối tới database'); // Câu truy vấn $sql = 'DELETE FROM customer WHERE id = 1'; // DELETE if (mysqli_query($conn, $sql)){ echo 'Xóa thành công'; } // Ngắt kết nối mysqli_close($conn);
5. Câu truy vấn update
Ta sẽ viết một câu truy vấn update và thực thi tương tự như phần 3,4. Ví dụ:
$conn = mysqli_connect('localhost', 'root', 'vertrigo', 'demo') or die ('Không thể kết nối tới database'); // Câu truy vấn $sql = "UPDATE customer SET name = 'TEN MOI' where id = 2"; // DELETE if (mysqli_query($conn, $sql)){ echo 'Cập nhật thành công'; } // Ngắt kết nối mysqli_close($conn);
Note: Vì các bạn đang học hàm nên ở mỗi thao tác bạn vào database xem có thay đổi không nhé, ở những bài tiếp theo mình sẽ hướng dẫn viết HTML cụ thể hơn.
6. Lời kết
Trong bài này chỉ mang tính chất giới thiệu cách sử dụng một số hàm kết nối bằng cách dùng MYSQLI, ở những bài tiếp theo chúng ta sẽ tìm hiểu cụ thể và rõ ràng hơn. Chúc các bạn học tốt.