Kết Nối Với Cơ Sở Dữ Liệu

Ở phần này chúng ta sẽ cùng tìm hiểu về dẫn cách kết nối với cơ sở dữ liệu MySQL sử dụng PHP. PHP có nhiều hàm nhau có thể được sử dụng để kết nối với MySQL datatabase. Trong bài học này chúng ta sẽ tìm hiểu cách sử dụng hàm mysqli().

Kiểm Tra Hoạt Động Của MySQLi Extension

Hàm mysqli() được PHP hỗ trợ qua một trình cài đặt mở rộng (extension) tên là MySQLi. Phần mở rộng này mặc định được cài đặt và kích hoạt khi bạn cài đặt PHP. Để kiểm tra lại xem extension này đã được kích hoạt hay chưa bạn chạy câu lệnh sau:

$ php -m | grep mysql

Nếu mysqli hiển thị trong kết quả trả về thì có nghĩa là bạn có thể sử dụng hàm này:

PHP - Kết nối với database

Ở hình trên đây, bạn có thể thấy trên máy tính tôi có cài và kích hoạt 3 extension là MySQL, MySQLiMySQL PDO. Cả 3 extention này đều có các hàm hỗ trợ kết nối với cơ sở dữ liệu MySQL. Tuy nhiên chúng ta sẽ sử dụng MySQLi trong bài học này.

Lưu ý: Từ phiên bản 5.5 extension MySQL không còn được hỗ trợ và chính thức bị gỡ bỏ trong phiên bản PHP7

Kích Hoạt MySQLi

Bạn có thể bỏ qua phần này nếu như MySQLi đã được kích hoạt

Nếu bạn không thấy có MySQLi hiển thị trên kết quả trả về thì bạn cần phải kích hoạt extension này.

Việc này được thực hiện thông qua hiệu chỉnh file php.ini. Trên Windows, file này nằm trong thư mục php bên trong thư mục cài đặt XAMPP. Ví dụ của tôi file này sẽ nằm ở địa chỉ C:\xamp\php. Trên Ubuntu, file này sẽ ở địa chỉ /etc/php5/apache2/php.ini hoặc /etc/php/apache2/php.ini (cho phiên bản PHP nhỏ hơn 5).

Sử dụng text editor mở file php.ini lên và tìm dòng chứa đoạn mã sau:

extension=mysqli.so

Nếu không tìm thấy bạn cần thêm nó vào một dòng mới, ngược lại nếu tìm thấy thì bạn cần xóa ký tự comment (;) được đặt ở đầu dòng lệnh.

Sau đó trên Ubuntu, khởi động lại apache dùng câu lệnh sau:

$ sudo service restart apache2

Hoặc nếu trên Windows bạn bấm vào nút restart Apache trên XAMPP Control Panel.

Kết Nối Với Database

Bây giờ trong thư mục dự án, bạn hãy tạo một file connect_db.php với nội dung như sau:

<html>
<head>
    <title>Kết Nối Database</title>
    <meta charset="utf-8">
</head>
<body>
<h2>Kết Nối Database</h2>
<?php
$link = mysqli_connect('localhost', 'root', 'abcdabcd', 'hoclaptrinh_org');

if($$link){
    die('Không thể kết nối với database: ' . $mysqli_connect_errno($link));
} else {
    echo "<p>Kết nối thành công</p>";
}
?>
<div class="copyright" style="background: #d9edf7; color: #31708f; padding: 15px 15px;">&copy; hoclaptrinh.org 2015</div>
</body>
</html>

Ở trên chúng ta sử dụng hàm mysqli_connect() trong PHP để kết nối với database. Hàm này nhận các đối số truyền vào sau:

  • Địa chỉ host của database server: Trường hợp của chúng ta giá trị này là localhost vì máy chủ Apache và máy chủ MySQL database của chúng là là một.
  • Tên user dùng để kết nối với MySQL db: Ở đây là root
  • Mật khẩu của user trên. Thay my_password bằng mật khẩu mà bạn đặt cho root

Tiếp theo, bạn cần cập nhật đoạn mã PHP trong authenticated.php bằng việc thay đổi địa chỉ chuyển tiếp về trang connect_db.php như sau:

if ($_POST['id'] == 'GV1258' && $_POST['password'] ==  123456) {
    $adminURL = 'connect_db.php';
    header('Location: '.$adminURL);
    exit();
} else {
    echo "<p>Sai ID hoặc mật khẩu</p>";
}

Cuối cùng, mở trình duyệt và truy cập địa chỉ http://localhost/hoclaptrinh_org/connect_db.php bạn sẽ thấy kết quả như sau:

PHP - Kết nối với cơ sở dữ liệu

Trong phần tiếp theo chúng ta sẽ viết code cho trang admin để hiển thị danh sách các học viên trong lớp.