[PDO] - Tạo file kết nối CSDL từ PHP tới MySQL

03cd82 2024

Thông thường, 1 website chúng ta chỉ nên viết câu lệnh kết nối CSDL 1 lần và có thể bạn lưu vào 1 file riêng rồi include vào các file php mà có nhu cầu kết nối CSDL hoặc bạn có thể đưa lệnh kết nối CSDL vào một hàm rồi gọi ở những nơi các bạn cần dùng...

 

Để kết nối CSDL bạn cần có các thông tin để kết nối:

 

$host = 'localhost';
$db_user = 'root';
$db_passwd = '';
$db_name = 'Ten_CSDL';

$objConn = null;

Tùy theo cài đặt máy chủ mà bạn có các giá trị thông số khác nhau.

Tiếp đến bạn cần có 1 biến để lưu đối tượng kết nối CSDL (PDO) khi nào cần dùng sẽ gọi ra sử dụng. Giả sử đặt tên là $objConn 

Tiếp đến là các câu lệnh thực hiện kết nối theo cấu trúc sau:

$objConn = new PDO("mysql:host=$host;dbname=$db_name", $db_user, $db_passwd);

$objConn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

Dòng thứ nhất là tạo đối tượng kết nối, chỉ ra cho PDO biết là bạn cần làm việc với tên CSDL là mysql. Các ký hiệu bạn viết cho đúng chính tả và thứ tự.

Dòng thứ hai là thiết lập chế độ báo lỗi khi câu lệnh truy vấn của bạn bị sai hoặc xảy ra lỗi quá trình thực thi câu lệnh SQL: Chuyển cơ chế lỗi thành cơ chế ngoại lệ.

Sử dụng try...catch để bắt ngoại lệ

Tiếp đến bạn hãy đặt 2 lệnh trên vào trong cặp truy /catch để bắt ngoại lệ khi có lỗi xảy ra.

 

try{
    $objConn = new PDO("mysql:host=$host;dbname=$db_name", $db_user, $db_passwd);

    $objConn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

    echo "Ket noi CSDL thanh cong!";

}catch(Exception $e){
    die( $e->getMessage()  );
}

Code đầy đủ

Toàn bộ code trên bạn để trong 1 file là db.php. Sau này dùng ở đâu thì bạn include file này vào là có đối tượng PDO để dùng.

Dưới đây là code hoàn chỉnh, bạn hãy chạy thử file này, nếu thành công sẽ có thông báo Kết nối CSDL thành công.


<?php
$host = 'localhost';
$db_user = 'root';
$db_passwd = '';
$db_name = 'demo_db';

$objConn = null;

try{
    $objConn = new PDO("mysql:host=$host;dbname=$db_name", $db_user, $db_passwd);

    $objConn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

    echo "Ket noi CSDL thanh cong!";

}catch(Exception $e){
    die( $e->getMessage()  );
}

 

 

Nguồn: zezo.dev