Kết nối cơ sở dữ liệu trong php

Vì vậy, nếu bạn phải chuyển dự án của mình sang sử dụng cơ sở dữ liệu khác, PDO sẽ giúp quá trình này trở nên dễ dàng. Bạn chỉ phải thay đổi chuỗi kết nối và một vài truy vấn. Với MySQLi, bạn sẽ cần phải viết lại toàn bộ mã - bao gồm cả truy vấn

Cả hai đều hướng đối tượng, nhưng MySQLi cũng cung cấp API thủ tục

Cả hai đều hỗ trợ Báo cáo đã chuẩn bị. Các câu lệnh đã chuẩn bị bảo vệ khỏi SQL injection và rất quan trọng đối với bảo mật ứng dụng web


Các ví dụ về MySQL trong cả Cú pháp MySQLi và PDO

Trong phần này và trong các chương tiếp theo, chúng tôi trình bày ba cách làm việc với PHP và MySQL

  • MySQLi (hướng đối tượng)
  • MySQLi (thủ tục)
  • PDO

Cài đặt MySQLi

Đối với Linux và Windows. Tiện ích mở rộng MySQLi được cài đặt tự động trong hầu hết các trường hợp, khi gói mysql php5 được cài đặt

Để biết chi tiết cài đặt, hãy truy cập. http. //php. mạng/thủ công/en/mysqli. cài đặt. php


Cài đặt PDO

Để biết chi tiết cài đặt, hãy truy cập. http. //php. net/manual/en/pdo. cài đặt. php



Mở kết nối tới MySQL

Trước khi chúng tôi có thể truy cập dữ liệu trong cơ sở dữ liệu MySQL, chúng tôi cần có thể kết nối với máy chủ

Ví dụ (Hướng đối tượng MySQLi)

$servername = "localhost";
$username = "tên người dùng";
$password = "mật khẩu";

// Tạo kết nối
$conn = new mysqli($servername, $username, $password);

// Kiểm tra kết nối
if ($conn->connect_error) {
  die("Kết nối không thành công. ". $conn->connect_error);
}
echo "Đã kết nối thành công";
?>


Lưu ý về ví dụ hướng đối tượng ở trên

$connect_error đã bị hỏng cho đến khi PHP 5. 2. 9 và 5. 3. 0. Nếu bạn cần đảm bảo khả năng tương thích với các phiên bản PHP trước 5. 2. 9 và 5. 3. 0, hãy sử dụng đoạn mã sau để thay thế

// Kiểm tra kết nối
if (mysqli_connect_error()) {
  die("Kết nối cơ sở dữ liệu không thành công. ". mysqli_connect_error());
}

Ví dụ (Thủ tục MySQLi)

$servername = "localhost";
$username = "tên người dùng";
$password = "mật khẩu";

// Tạo kết nối
$conn = mysqli_connect($servername, $username, $password);

// Kiểm tra kết nối
if (. $conn) {
  die("Kết nối không thành công. ". mysqli_connect_error());
}
echo "Đã kết nối thành công";
?>


Ví dụ (PDO)

$servername = "localhost";
$username = "tên người dùng";
$password = "mật khẩu";

thử {
  $conn = new PDO("mysql. host=$servername;dbname=myDB", $username, $password);
  // ​​đặt chế độ lỗi PDO thành ngoại lệ
  $conn->setAttribute( . ATTR_ERRMODE, PDO. ERRMODE_EXCEPTION);
  echo "Đã kết nối thành công";
} catch(PDOException $e) {
  echo "Không kết nối được. ". $e->getMessage();
}
?>


Ghi chú. Trong ví dụ PDO ở trên, chúng tôi cũng đã chỉ định một cơ sở dữ liệu (myDB). PDO yêu cầu cơ sở dữ liệu hợp lệ để kết nối với. Nếu không có cơ sở dữ liệu nào được chỉ định, một ngoại lệ sẽ được đưa ra

Mẹo. Một lợi ích lớn của PDO là nó có một lớp ngoại lệ để xử lý bất kỳ sự cố nào có thể xảy ra trong các truy vấn cơ sở dữ liệu của chúng tôi. Nếu một ngoại lệ được đưa ra trong khối try{ }, tập lệnh sẽ ngừng thực thi và chuyển trực tiếp đến khối catch(){ } đầu tiên


Đóng kết nối

Kết nối sẽ tự động đóng khi tập lệnh kết thúc. Để đóng kết nối trước, hãy sử dụng như sau

Để truy cập và bổ sung nội dung vào cơ sở dữ liệu MySQL, trước tiên bạn phải kết nối MySQL với PHP. Trong hướng dẫn này, hãy tìm hiểu cách sử dụng MySQLi Extension và PHP Data Objects để kết nối với MySQL. Hệ thống truyền thông hàm mysql_ không được sử dụng nữa và chúng tôi sẽ không đề cập đến chúng trong hướng dẫn này

Kết nối cơ sở dữ liệu trong php
Hướng dẫn kết nối MySQL với PHP bằng 2 cách

Điều kiện cần có

  • CREATE đặc quyền
  • Cơ sở dữ liệu MySQL
  • Tiện ích mở rộng MySQLi hoặc PDO

Nội dung

2 cách kết nối MySQL với PHP

Có hai cách phổ biến để kết nối MySQL với PHP

  1. With extension extension  MySQLi Extension của PHP
  2. Với đối tượng dữ liệu PHP (PDO)

Hướng dẫn này cũng bao gồm các giải thích về thông tin xác thực được sử dụng trong tập lệnh PHP và các ẩn lừa đảo mà bạn có thể gặp khi sử dụng MySQLi và PDO

Connect MySQL with PHP by MySQLi Extension

MySQLi là một phần mở rộng chỉ hỗ trợ cơ sở dữ liệu MySQL. Nó cho phép truy cập vào các chức năng có trong hệ thống MySQL (phiên bản 4. 1 trở lên), cung cấp cả giao diện thủ tục và hướng đối tượng. Nó hỗ trợ các câu lệnh phía máy chủ, nhưng không hỗ trợ từ phía máy khách

Tiện ích mở rộng MySQLi được bao gồm cả phiên bản PHP 5 và các phiên bản mới hơn

Tập lệnh PHP để kết nối với cơ sở dữ liệu MySQL bằng cách tiếp cận MySQLi as after

<?php
$servername = "localhost";
$database = "database";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $database);

// Check connection

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo “Connected successfully”;
mysqli_close($conn);
?>

Giải thích về thông tin xác thực

Phần đầu tiên của tập lệnh là bốn biến (tên máy chủ, cơ sở dữ liệu, tên người dùng và mật khẩu) và các giá trị tương ứng của chúng. Các giá trị này phải tương ứng với chi tiết kết nối của bạn

Kết nối cơ sở dữ liệu trong php
4 variable of script

Tiếp theo là hàm chính của PHP mysqli_connect(). Nó thiết lập một kết nối với cơ sở dữ liệu được chỉ định

Kết nối cơ sở dữ liệu trong php
Hàm mysql_connect

Sau đây là câu lệnh “nếu”. Đây là một phần của mã cho biết kết nối dữ liệu đã được thiết lập hay chưa. Khi kết nối không thành công, nó sẽ đưa ra thông báo Kết nối thất bại. Hàm chết sẽ có trong thông báo và sau đó thoát khỏi tập lệnh

Kết nối cơ sở dữ liệu trong php
Command if and command die

Nếu kết nối thành công, nó sẽ hiển thị “Đã kết nối thành công. ”

Kết nối cơ sở dữ liệu trong php
Thông báo kết nối thành công

Khi tập lệnh kết thúc, kết nối với cơ sở dữ liệu cũng đóng. Nếu bạn muốn kết thúc mã theo cách thủ công, hãy sử dụng hàm mysqli_close

Kết nối cơ sở dữ liệu trong php
Use mysqli_close to end connection

MySQL connection with PHP by PDO

Đối tượng dữ liệu PHP (PDO) là một phần mở rộng như một giao diện để kết nối với cơ sở dữ liệu. Không giống như MySQLi, nó có thể thực hiện bất kỳ cơ sở dữ liệu chức năng nào và không giới hạn ở MySQL. Nó cho phép sự linh hoạt giữa các cơ sở dữ liệu và tổng quan hơn MySQL. PDO hỗ trợ các câu lệnh từ phía máy chủ và cả máy khách

Lưu ý. Kết nối MySQL với PHP bằng PDO sẽ không thành công nếu phiên bản PHP cũ hơn 5. 0 (bao gồm cả PHP 5. 1)

MySQL connection with PHP information through PDO as after

<?php

$servername = "localhost";
$database = "database";
$username = "username";
$password = "password";
$charset = "utf8mb4";

try {
  $dsn = "mysql:host=$servername;dbname=$database;charset=$charset";
  $pdo = new PDO($dsn, $username, $password);
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  echo “Connection Okay”;
  return $pdo
}
catch (PDOException $e) {
  echo “Connection failed: ”. $e->getMessage();
}
?>

Cú pháp xác thực thông tin

Đầu tiên, chúng ta có năm biến (tên máy chủ, cơ sở dữ liệu, tên người dùng, mật khẩu và bộ ký tự) và giá trị của chúng. Các giá trị này phải tương ứng với chi tiết kết nối của bạn

Tên máy chủ sẽ là localhost. Nếu được kết nối với một máy chủ trực tuyến, hãy nhập tên máy chủ đó vào tên máy chủ

Biến “bộ ký tự” cho cơ sở dữ liệu biết mã hóa mà nó sẽ nhận và gửi dữ liệu. Tiêu chuẩn xuất đề là utf8mb4

Kết nối cơ sở dữ liệu trong php
Add variable charset

Thử và Bắt

Tài sản lớn nhất của PDO là có một lớp ngoại lệ để xử lý mọi vấn đề thời gian ẩn trong cơ sở dữ liệu truy vấn. Nó giải quyết những vấn đề này bằng cách thử và nắm bắt

Nếu sự cố phát sinh trong khi cố gắng kết nối, nó sẽ tiếp tục chạy và cố gắng bắt và giải quyết sự cố. The block try can be set to show an error error or run code instead

Kết nối cơ sở dữ liệu trong php
Giải quyết vấn đề tìm ẩn bằng cách thử và bắt

Tham số đầu tiên trong khối try và catch là DSN, viết tắt của Data(base) Source Name. Nó rất quan trọng vì nó xác định loại và tên của cơ sở dữ liệu, cùng với bất kỳ thông tin bổ sung nào khác

Trong ví dụ này, chúng tôi đang sử dụng cơ sở dữ liệu MySQL. Tuy nhiên, PDO hỗ trợ nhiều loại cơ sở dữ liệu khác nhau. Nếu bạn có một cơ sở dữ liệu khác, hãy thay phần cú pháp đó (mysql) bằng cơ sở dữ liệu bạn đang sử dụng

Kết nối cơ sở dữ liệu trong php
Thay thế mysql bằng cơ sở dữ liệu bạn đang sử dụng

Tiếp theo là biến PDO. Biến này sẽ thiết lập kết nối với cơ sở dữ liệu. It has ba tham số

  1. Tên nguồn dữ liệu (DSN)
  2. Tên người dùng cho cơ sở dữ liệu của bạn
  3. Mật khẩu cho cơ sở dữ liệu của bạn
Kết nối cơ sở dữ liệu trong php
PDO gồm 3 tham số username, password và DSN

Sau đây là phương thức setAttribute thêm hai tham số vào PDO

  1. PDO. ATTR_ERRMODE
  2. PDO. MODERATOR_EXCEPTION

Phương pháp này hướng dẫn PDO chạy trong trường hợp truy vấn không thành công

Kết nối cơ sở dữ liệu trong php
setAttribute run in query failed

Add echo “Connection Okay. ” để xác nhận kết nối đã được thiết lập

Kết nối cơ sở dữ liệu trong php
Specify connection is setting

Trả về biến PDO để được kết nối với cơ sở dữ liệu

Kết nối cơ sở dữ liệu trong php
Return to PDO variable

Sau khi trả về biến PDO, hãy xác định PDOException trong block catch bằng cách hướng nó hiển thị thông báo kết nối không thành công

Kết nối cơ sở dữ liệu trong php
Hướng đó hiển thị thông báo “Kết nối không thành công”

Kết nối cơ sở dữ liệu trong php

Chương trình ưu đãi cuối năm tại Vietnix

Các lỗi tiềm ẩn khi kết nối MySQL với PHP bằng MySQLi và PDO

Mật khẩu sai

Mật khẩu trong mã PHP cần phải khớp với mật khẩu trong cơ sở dữ liệu. If all two does not match, could not be set up connection with database. You will got got a error message for known connection failed

Phương pháp khả thi

  1. Kiểm tra cơ sở dữ liệu chi tiết để đảm bảo mật khẩu chính xác
  2. Người dùng bảo đảm được chỉ định cho cơ sở dữ liệu

Cannot connect MySQL Server

PHP could not be connect to be with MySQL server if name server not got a format. Bảo đảm rằng tên máy chủ được đặt thành localhost

Trong trường hợp xảy ra lỗi khác, hãy nhớ thêm tệp “error_log” để hỗ trợ khi cố gắng giải quyết bất kỳ sự cố nào. Tệp nằm trong cùng một thư mục nơi tập lệnh đang chạy

Tổng kết

Hướng dẫn trình bày chi tiết cách kết nối MySQL với PHP bằng hai công cụ đó là MySQLi và PDO để giúp bạn có thể hiểu rõ hơn về chúng

Cả MySQLi và PDO đều có điểm mạnh của chúng. Tuy nhiên, hãy nhớ rằng MySQLi chỉ sử dụng cho cơ sở dữ liệu MySQL. Do đó, nếu bạn muốn thay đổi sang cơ sở dữ liệu khác, bạn sẽ phải viết lại toàn bộ mã. Mặt khác, PDO hoạt động với 12 cơ sở dữ liệu khác nhau, giúp việc di chuyển dễ dàng hơn nhiều

Hy vọng bài viết này sẽ giúp ích cho bạn. Chúc bạn may mắn. Đừng quên theo dõi Vietnix để cập nhật kiến ​​thức và tài liệu bổ sung khác

Kết nối cơ sở dữ liệu trong php

Chia sẻ bài viết

đánh giá

5/5 - (1 bình chọn)

Kết nối cơ sở dữ liệu trong php

nguyễn hưng

Conconnection with mình qua

Mình là Bo - admin của Quản Trị Linux. Mình đã có 10 năm làm việc trong mảng System, Network, Security và đã trải nghiệm qua các chứng chỉ như CCNP, CISSP, CISA, đặc biệt là chống tấn công DDoS. Gần đây mình trải nghiệm thêm Digital Marketing và đã hoàn thành chứng chỉ CDMP của PearsonVUE. Mình rất thích được chia sẻ và hỗ trợ cho mọi người, nhất là các bạn sinh viên. Please connect with mình nhé