Điện thoại/ Zalo
0389934723
Bài 1: Kết nối PHP với MySQL
Mở đầu cho series học PHP và MySql, bài này chúng ta sẽ tìm hiểu về các cách cách kết nối PHP với MySql. Nhìn chung thì PHP có hỗ trợ cho chúng ta 3 phương thức kết nối đến Mysql nhưng trong đó có một phương thức không hỗ trợ nữa nên mình sẽ chỉ giới thiệu hai phương thức còn lại thôi.
1, Chuẩn bị.
-Để có thể kết nối được PHP với MySql thì các bạn cần phải biết được các thông số trên SQL như:
- hostname: Server của MySql (mặc định là localhost)
- username: là tên truy cập vào MySql (mặc định là root).
- password: Là mật khẩu truy cập vào MySql (mặc định là rỗng).
- databasename: Là tên database mà các bạn muốn kết nối.
-Đồng thời bên phía PHP thì các bạn cũng cần cài đặt các gói hỗ trợ kết nối PHP với MySql (mặc định thì PHP cũng đã tích hợp sẵn).
2, Kết nối PHP với MySql bằng mysqli.
-Đầu tiên chúng ta phải kể đến mysqli là gì? thì ở đây mysqli là viết tắt của cụm từ mysql improved (cải tiến), nó là một thư viện giúp PHP có thể kết nối được với MySql hỗ trợ từ PHP5 trở đi.
mysqli hướng thủ tục
-Để kết nối PHP với MySql bằng phương thức này thì chúng ta dùng hàm mysqli_connect() với cú pháp như sau:
mysqli_connect(hostame, username, password, databasename);
(Các thông số trên các bạn xem ở trên nhé)
VD:
//khai báo biến host
$hostName = 'localhost';
// khai báo biến username
$userName = 'root';
//khai báo biến password
$passWord = '';
// khai báo biến databaseName
$databaseName = 'db_tuts';
// khởi tạo kết nối
$connect = mysqli_connect($hostName, $userName, $passWord, $databaseName);
//Kiểm tra kết nối
if (!$connect) {
exit('Kết nối không thành công!');
}
// thành công
echo 'Kết nối thành công!';
mysqli hướng đối tượng
-Đối với phương thức này các bạn chỉ cần khởi tạo class mysqli với cú pháp như sau:
new mysqli(hostname, username, password, databasename, port, socket);
(Các thông số trên các bạn xem ở trên nhé)
VD:
//khai báo biến host
$hostName = 'localhost';
// khai báo biến username
$userName = 'root';
//khai báo biến password
$passWord = '';
// khai báo biến databaseName
$databaseName = 'db_tuts';
// khởi tạo kết nối
$connect = new mysqli($hostName, $userName, $passWord, $databaseName);
//Kiểm tra kết nối
if ($connect->connect_error) {
exit('Kết nối không thành công. chi tiết lỗi:' . $connect->connect_error);
}
// thành công
echo 'Kết nối thành công!';
3, Kết nối PHP với MySql bằng PDO.
-Ở đây PDO là viết tắt của chữ PHP Data Object, với gói này bạn có thể kết nối PHP đến rất nhiều các database khác như Oracel,postpreSQL,…
-Để kết nối PHP với MySql bằng PDO các bạn chỉ cần khởi tạo class PDO với cú pháp:
new PDO(dsn, username, password, option);
Trong đó: dsn chứa các thông tin như database drive,hostname,databasename còn option chứa các thông số tùy chỉnh(nói sau).
VD:
//khai báo biến host
$hostName = 'localhost';
// khai báo biến username
$userName = 'root';
//khai báo biến password
$passWord = '';
// khai báo biến databaseName
$databaseName = 'db_tuts';
// khởi tạo kết nối
try {
$connect = new PDO('mysql:host=' . $hostName . ';dbname=' . $databaseName, $userName, $passWord);
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//thành công
echo 'thành công';
} catch (PDOException $e) {
//thất bại
die($e->getMessage());
}
4, Ngắt kết nối.
-Để ngắt kết nối PHP với MySql các bạn sử dụng một trong các cách sau (chú ý kết nối theo cách nào thì hủy theo cách đó).
mysqli hướng thủ tục
-Để hủy kết nối với phương thức này thì các bạn dùng hàm mysqli_close()
với cú pháp
mysqli_close(connect);
-Với connect là biến khởi tạo kết nối.
VD: Hủy kết nối với VD phần trên
mysqli_close($connect);
mysqli hướng đối tượng
-Đê hủy kết nối với cách này thì các bạn chỉ cần gọi phương thức close()
VD: Hủy kết nối với VD phần trên
$connect->close();
PDO
-Để hủy kết nối bằng cách này thì các bạn chỉ cần set biến khởi tạo về null.
VD: Hủy kết nối với VD phần trên
$connect = null
5, Nên dùng phương thức nào.
– Có lẽ mình không nên nói nhiều ở phần này mà cho các bạn xem bảng sau rồi các bạn tự đưa ra kết luận nhé!
# | PDO | MySQLi |
Hỗ trợ kết nối | 12 database | MySQL |
API | OOP | OOP + procedural |
Kết nối | Đơn giản | Đơn giản |
Named parameters (cái này không biết dịch như nào cho đúng à) | Yes | No |
Object mapping | Yes | Yes |
Prepared statements (client side) |
Yes | No |
Performance(tối ưu) | Fast | Fast |
Stored procedures (cái này đọc trong series mysql) | Yes | Yes |
6, Lời kết.
-Ở trên mình đã giới thiệu với các bạn cách kết nối PHP với MySql bằng các cách mà PHP hiện đang hỗ trợ, ngoài ra nó còn hỗ trợ phương thức mysql nữa nhưng ở PHP7 đã không còn hỗ trợ nữa nên mình không nhắc đến ở đây.