Câu lệnh chính xác để kết nối tôi một cơ sở dữ liệu mysql sử dụng pdo

Câu lệnh chính xác để kết nối tôi một cơ sở dữ liệu mysql sử dụng pdo

Trong bài học trước, chúng ta đã tìm hiểu về phương thức MySQLi để tương tác với CSDL. Bài học này, mình sẽ hướng dẫn thêm một cách khác là PDO. Tính năng này cho phép việc kết nối và tương tác với cơ sở dữ liệu trở lên dễ dàng và hiệu quả hơn so với MySQLi.

  • Video Kết nối với cơ sở dữ liệu MySQL bằng PDO
  • Hướng dẫn chi tiết
    • Kết nối với database và tạo bảng
    • INSERT – Thêm dữ liệu
    • SELECT – Truy vấn dữ liệu
    • UPDATE – Sửa dữ liệu
    • DELETE – Xóa dữ liệu
    • PREPARE trong MySQLi

Video Kết nối với cơ sở dữ liệu MySQL bằng PDO

Hướng dẫn chi tiết

"Thăm ngàn, kẹp ngần nhưng vẫn không đủ chai ni (trả nợ)" nên dành vài dòng cho QUẢNG CÁO

Các bạn cần hosting PHP - WordPress nhanh, rẻ và dễ sử dụng có thể chọn Azdigi nhé.
Link đăng ký: NHẬN NGAY ƯU ĐÃI
Nếu các bạn đăng ký hosting từ link quảng cáo, mình sẽ có một ít tiền để duy trì và "chai ni".

Kết nối với database và tạo bảng

Đối với PDO, chúng ta sẽ xử lý theo kiểu hướng đối tượng nhé. Đầu tiên, chúng ta cần dựng đối tượng PDO, truyền vào các tham số cho hàm construct.

$host_name = 'localhost';
$db_name = 'demo_pdo';
$user_name = 'demo_pdo';
$password = 12345678;

Phần PDO, chúng ta nên để trong try – catch để bắt lỗi nhé.

$connect = new PDO("mysql:host=$host_name;dbname=$db_name" , $user_name , $password);
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Tạo bảng dữ liệu. Chúng ta sẽ trỏ tới phương thức exec để chạy câu truy vấn.

$sql = "CREATE TABLE `demo_pdo`.`user` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT , 
`username` VARCHAR(5) NULL DEFAULT NULL , 
`password` VARCHAR(5) NULL DEFAULT NULL , 
`email` VARCHAR(5) NULL DEFAULT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;";
$connect->exec($sql);

INSERT – Thêm dữ liệu

Thêm dữ liệu đơn giản, chúng ta có thể sử dụng cách đơn giản như trên

"Người ta tắt AdsBlock không phải vì người ta dại, mà người ta quý mình nên coi quảng cáo"

Hosting WordPress nhanh, rẻ và dễ sử dụng có free SLL hãy chọn Azdigi nhé.
Link đăng ký: NHẬN NGAY ƯU ĐÃI
Nếu các bạn mua hosting từ link trên, mình sẽ có một ít tiền để duy trì. Cảm ơn

$sql  = "INSERT INTO `user`(`username`, `password`, `email`) VALUES ('abc',123,123)";
$connect->exec($sql);

Tuy nhiên, với các câu lệnh có biến số, chúng ta có một cách tốt hơn, đảm bảo về bảo mật cho cách thao tác với CSDL. Ý tưởng được đưa ra đó: thay vì thực thi ngay câu sql, chúng ta sẽ chuẩn bị prepare và thực thi bằng phương thức execute

Các tham số :username, :pass, :email được bind (trói buộc) vào các biến $username, $pass, $email bằng phương thức bindParam.

$sql  = "INSERT INTO `user`(`username`, `password`, `email`) VALUES (:username,:pass,:email)";
$query = $connect->prepare($sql);
$query->bindParam(':username', $username);
$query->bindParam(':pass', $pass);
$query->bindParam(':email', $email);
$username = 'xyz';
$pass = '123';
$email = '123';
$query->execute();

SELECT – Truy vấn dữ liệu

Truy vấn dữ liệu. Chúng ta sẽ thực thi truy vấn với prepare và execute. Để lấy dữ liệu, chúng ta sẽ dùng phương thức fetch để duyệt qua từng dòng dữ liệu. Phương thức fetch có thể truyền vào tham số như sau:

+ Để trống: dữ liệu trả về sẽ có dạng mảng đầy đủ

+ FETCH_ASSOC trả về mảng chỉ có key và value

+ FETCH_NUM trả mảng chỉ số và value /

+ FETCH_OBJ trả về đối tượng

$sql = "SELECT * FROM `user`";
$query = $connect->prepare($sql);
$query->execute();
$arr_kq = array();
while($kq = $query->fetch( PDO::FETCH_OBJ )){
  
  array_push($arr_kq,$kq);
}
var_dump($arr_kq);

UPDATE – Sửa dữ liệu

Các bạn có thể update bằng cách thực thi câu lệnh sql.

$sql = "UPDATE `user` SET `username` = 'thui', `password` = '234' WHERE `user`.`id` = 2;";
$connect->exec($sql);

DELETE – Xóa dữ liệu

$sql = "DELETE FROM `user` WHERE `user`.`id` = 2";
$connect->exec($sql);

PREPARE trong MySQLi

Prepare theo kiểu hướng đối tượng

$connect = new mysqli('localhost', 'mysqli', 12345678 , 'mysqli');
$query = $connect->prepare("INSERT INTO `user`(`username`, `password`, `email`) VALUES (?,?,?)");
$query->bind_param("sss",$username, $password , $email );
$username = 'abcd';
$password = '123';
$email = '123';
$query->execute();

Prepare dạng hướng thủ tục

$connect = mysqli_connect("localhost", "mysqli", "12345678", "12345678");
$query = mysqli_prepare($link, "INSERT INTO `user`(`username`, `password`, `email`) VALUES (?,?,?)");
mysqli_stmt_bind_param($query, "sss", $username , $password, $email);
$username = 'abcd';
$password = '123';
$email = '123';
mysqli_stmt_execute($query);

Tài liệu bài học: Download

Nếu có thắc mắc, hãy đặt câu hỏi bằng cách comment bên dưới, qua email, hoặc nhắn tin qua Fanpage Góc làm web.

Liên hệ

Câu lệnh chính xác để kết nối tôi một cơ sở dữ liệu mysql sử dụng pdo