Hướng dẫn how does php connect to database? - php kết nối với cơ sở dữ liệu như thế nào?


Php 5 trở lên có thể làm việc với cơ sở dữ liệu MySQL bằng cách sử dụng:

  • Mở rộng mysqli ("i" là viết tắt của cải tiến) (the "i" stands for improved)
  • PDO (Đối tượng dữ liệu PHP)

Các phiên bản trước của PHP đã sử dụng tiện ích mở rộng MySQL. Tuy nhiên, phần mở rộng này đã bị phản đối trong năm 2012.


Tôi nên sử dụng mysqli hay pdo?

Nếu bạn cần một câu trả lời ngắn, đó sẽ là "bất cứ điều gì bạn thích".

Cả MySQLI và PDO đều có lợi thế của họ:

PDO sẽ hoạt động trên 12 hệ thống cơ sở dữ liệu khác nhau, trong khi MySQLI sẽ chỉ hoạt động với cơ sở dữ liệu MySQL.

Vì vậy, nếu bạn phải chuyển đổi dự án của mình để sử dụng cơ sở dữ liệu khác, PDO sẽ làm cho quá trình 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 viết lại toàn bộ mã - các truy vấn bao gồm.

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

Cả hai hỗ trợ các tuyên bố đã chuẩn bị. Các tuyên bố được 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.


Ví dụ MySQL trong cả cú pháp MySQLI và PDO

Trong đó, và trong các chương sau, chúng tôi đã chứng minh 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: Phần mở rộng MySQLI được tự động cài đặt trong hầu hết các trường hợp, khi gói HYSQL PHP5 được cài đặt.

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


Cài đặt PDO

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



Mở kết nối vớ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) theo định hướng đối tượng)

$servername = "localhost";
$username = "username";
$password = "password";

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

// kiểm tra kết nối nếu ($ Conn-> Connect_error) & nbsp; {& nbsp; & nbsp; die ("kết nối không thành công:". $ Conn-> Connect_error);} echo "kết nối thành công"; ?>
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>


Lưu ý trên 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 mã sau thay thế:

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

Ví dụ (thủ tục MySQLI)

$servername = "localhost";
$username = "username";
$password = "password";

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

// kiểm tra kết nối nếu ($ Conn-> Connect_error) & nbsp; {& nbsp; & nbsp; die ("kết nối không thành công:". $ Conn-> Connect_error);} echo "kết nối thành công"; ?>
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>


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

$servername = "localhost";
$username = "username";
$password = "password";

// Tạo kết nối $ Conn = new mysqli ($ servername, $ username, $ password);
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>


// kiểm tra kết nối nếu ($ Conn-> Connect_error) & nbsp; {& nbsp; & nbsp; die ("kết nối không thành công:". $ Conn-> Connect_error);} echo "kết nối thành công"; ?> In the PDO example above we have also specified a database (myDB). PDO require a valid database to connect to. If no database is specified, an exception is thrown.

Lưu ý trên ví dụ hướng đối tượng ở trên: A great benefit of PDO is that it has an exception class to handle any problems that may occur in our database queries. If an exception is thrown within the try{ } block, the script stops executing and flows directly to the first catch(){ } block.


$ 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 mã sau thay thế:

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

Ví dụ (thủ tục MySQLI)

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


// kiểm tra kết nối if (! $ Conn) & nbsp; {& nbsp; chết ("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)




Giới thiệu

Để truy cập và thêm nội dung vào cơ sở dữ liệu MySQL, trước tiên bạn phải thiết lập kết nối giữa cơ sở dữ liệu và tập lệnh PHP.MySQL database, you must first establish a connection between the database and a PHP script.

Trong hướng dẫn này, hãy tìm hiểu cách sử dụng các đối tượng Dữ liệu PHP và tiện ích PHP của MySQLI để kết nối với MySQL. Các chức năng MySQL_ di sản truyền thống được không dùng nữa và chúng tôi sẽ không bao gồm chúng trong hướng dẫn này.. Traditional legacy mysql_ functions are deprecated and we will not cover them in this guide.

Hướng dẫn how does php connect to database? - php kết nối với cơ sở dữ liệu như thế nào?

Điều kiện tiên quyết

  • Đặc biệt tạo đặc quyền
  • Cơ sở dữ liệu MySQL
  • Tiện ích mở rộng MySQLI hoặc PDO

Có hai cách phổ biến để kết nối với cơ sở dữ liệu MySQL bằng PHP:

  1. Với phần mở rộng php mysm mysqliPHP’s MySQLi Extension
  2. Với các đối tượng dữ liệu PHP (PDO)PHP Data Objects (PDO)

Hướng dẫn cũng bao gồm các giải thích cho các thông tin xác thực được sử dụng trong các tập lệnh PHP và các lỗi tiềm năng mà bạn có thể gặp phải bằng cách sử dụng MySQLI và PDO.

Tùy chọn 1: Kết nối với MySQL với tiện ích mở rộng được cải tiến MySQL

MySQLI là một tiện ích 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 mới được tìm thấy trong các hệ thống MySQL (phiên bản 4.1. Trở lên), cung cấp cả giao diện thủ tục hướng đối tượng và thủ tục. Nó hỗ trợ các câu lệnh được chuẩn bị phía máy chủ, nhưng không phải là các câu lệnh được chuẩn bị phía máy khách. is an extension that only supports MySQL databases. It allows access to new functionalities found in MySQL systems (version 4.1. and above), providing both an object-oriented and procedural interface. It supports server-side prepared statements, but not client-side prepared statements.

Tiện ích mở rộng MySQLI được bao gồm Php phiên bản 5 và 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 sử dụng phương pháp thủ tục MySQLI là như sau:

connect_error) {
die("Connection failed: " . $conn->connect_error);
}

echo “Connected successfully”;

mysqli_close($conn);

?>

Thông tin giải thích

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 sẽ tương ứng với chi tiết kết nối của bạn.

Hướng dẫn how does php connect to database? - php kết nối với cơ sở dữ liệu như thế nào?

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

Hướng dẫn how does php connect to database? - php kết nối với cơ sở dữ liệu như thế nào?

Sau đây là một câu nói nếu có. Đây là một phần của mã cho thấy liệu kết nối có được thiết lập hay không. Khi kết nối không thành công, nó cho kết nối tin nhắn không thành công. Hàm Die in thông báo và sau đó thoát ra khỏi tập lệnh.if statement.” It is the part of the code that shows whether the connection was established. When the connection fails, it gives the message Connection failed. The die function prints the message and then exits out of the script.

Hướng dẫn how does php connect to database? - php kết nối với cơ sở dữ liệu như thế nào?

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

Hướng dẫn how does php connect to database? - php kết nối với cơ sở dữ liệu như thế nào?

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.mysqli_close function.

Hướng dẫn how does php connect to database? - php kết nối với cơ sở dữ liệu như thế nào?

Tùy chọn 2: Kết nối với MySQL với PDO

Đối tượng dữ liệu PHP (PDO) là một tiện ích mở rộng đóng vai trò là 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ỳ chức năng cơ sở dữ liệu nào và không giới hạn ở MySQL. Nó cho phép linh hoạt giữa các cơ sở dữ liệu và tổng quát hơn MySQL. PDO hỗ trợ cả báo cáo chuẩn bị phía máy chủ và khách hàng.is an extension that serves as an interface for connecting to databases. Unlike MySQLi, it can perform any database functions and is not limited to MySQL. It allows flexibility among databases and is more general than MySQL. PDO supports both server and client-side prepared statements.

Lưu ý: PDO sẽ không chạy trên các phiên bản PHP cũ hơn 5.0 và được bao gồm trong PHP 5.1. PDO will not run on PHP versions older than 5.0 and is included in PHP 5.1.

Mã PHP để kết nối với cơ sở dữ liệu MySQL thông qua tiện ích mở rộng PDO là:

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

Đầu tiên, chúng tôi 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à ký tự) và giá trị của chúng. Các giá trị này sẽ 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ủ của máy chủ đó.server name will be localhost. If connected to an online server, type in the server name of that server.

Charset biến cho biết cơ sở dữ liệu trong đó mã hóa nó sẽ nhận và gửi dữ liệu. Tiêu chuẩn được đề xuất là UTF8MB4.charset tells the database in which encoding it will be receiving and sending data. The recommended standard is utf8mb4.

Hướng dẫn how does php connect to database? - php kết nối với cơ sở dữ liệu như thế nào?

Hãy thử và bắt các khối

Tài sản tuyệt vời của PDO, là nó có một lớp ngoại lệ để chăm sóc bất kỳ vấn đề tiềm ẩn nào trong các truy vấn cơ sở dữ liệu. Nó giải quyết những vấn đề này bằng cách kết hợp thử và bắt các khối.exception class to take care of any potential problems in database queries. It solves these problems by incorporating try and catch blocks.

Nếu một vấn đề phát sinh trong khi cố gắng kết nối, nó sẽ ngừng chạy và cố gắng bắt và giải quyết vấn đề. Bắt các khối có thể được đặt để hiển thị thông báo lỗi hoặc chạy mã thay thế.catch and solve the issue. Catch blocks can be set to show error messages or run an alternative code.

Hướng dẫn how does php connect to database? - php kết nối với cơ sở dữ liệu như thế nào?

Tham số đầu tiên trong khối thử và bắt là DSN, viết tắt của tên nguồn dữ liệu (cơ sở). Nó rất quan trọng vì nó định nghĩa 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.DSN, which stands for data(base) source name. It is crucial as it defines the type and name of the database, along with any other additional information.

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ợ các 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 thế một phần của cú pháp (MySQL) bằng cơ sở dữ liệu bạn đang sử dụng.

Hướng dẫn how does php connect to database? - php kết nối với cơ sở dữ liệu như thế nào?

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. Nó có ba tham số:PDO variable. This variable is going to establish a connection to the database. It has three parameters:

  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

Hướng dẫn how does php connect to database? - php kết nối với cơ sở dữ liệu như thế nào?

Sau đây là phương thức SetAttribution thêm hai tham số vào PDO:setAttribute method adding two parameters to the PDO:

  1. PDO::ATTR_ERRMODE
  2. PDO::ERRMODE_EXCEPTION

Phương pháp này hướng dẫn PDO chạy một ngoại lệ trong trường hợp truy vấn không thành công.exception in case a query fails.

Hướng dẫn how does php connect to database? - php kết nối với cơ sở dữ liệu như thế nào?

Thêm kết nối Echo "ổn." Để xác nhận một kết nối được thiết lập.Connection Okay.” to confirm a connection is established.

Hướng dẫn how does php connect to database? - php kết nối với cơ sở dữ liệu như thế nào?

Trả về biến PDO để kết nối với cơ sở dữ liệu.the PDO variable to connect to the database.

Hướng dẫn how does php connect to database? - php kết nối với cơ sở dữ liệu như thế nào?

Sau khi trả lại biến PDO, xác định PDOException trong khối bắt bằng cách hướng dẫn nó hiển thị thông báo khi kết nối không thành công.PDOException in the catch block by instructing it to display a message when the connection fails.

Hướng dẫn how does php connect to database? - php kết nối với cơ sở dữ liệu như thế nào?

Lỗi tiềm năng với MySQLI và PDO

Mật khẩu không đúng

Mật khẩu trong mã PHP cần tương ứng với mã trong cơ sở dữ liệu. Nếu cả hai không khớp, một kết nối với cơ sở dữ liệu không thể được thiết lập. Bạn sẽ nhận được một thông báo lỗi nói rằng kết nối đã thất bại.

Phương pháp khả thi::

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

Không thể kết nối với máy chủ MySQL

PHP có thể không thể kết nối với máy chủ MySQL nếu tên máy chủ không được nhận dạng. Đảm bảo rằng tên máy chủ được đặt thành localhost.server name is set to localhost.

Trong trường hợp các lỗi khác, hãy đảm bảo tham khảo tệp ERROR_LOG để giúp khi cố gắng giải quyết mọi vấn đề. Tệp được đặt trong cùng một thư mục nơi tập lệnh đang chạy.error_log file to help when trying to solve any issues. The file is located in the same folder where the script is running.

Sự kết luận

Hướng dẫn này chi tiết hai cách để kết nối với cơ sở dữ liệu MySQL bằng PHP.

Cả MySQLI và PDO đều có lợi thế của họ. Tuy nhiên, hãy nhớ rằng MySQLI chỉ được sử dụng cho cơ sở dữ liệu MySQL. Do đó, nếu bạn muốn thay đổi thành 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.MySQLi and PDO have their advantages. However, bear in mind that MySQLi is only used for MySQL databases. Therefore, if you want to change to another database, you will have to rewrite the entire code. On the other hand, PDO works with 12 different databases, which makes the migration much easier.

Làm thế nào PHP kết nối với cơ sở dữ liệu từng bước?

Trong PHP, chúng ta có thể kết nối với cơ sở dữ liệu bằng máy chủ XAMPP Web bằng cách sử dụng đường dẫn sau ...
Bắt đầu XAMPP Server bằng cách khởi động Apache và MySQL ..
Viết tập lệnh PHP để kết nối với XAMPP ..
Chạy nó trong trình duyệt cục bộ ..
Cơ sở dữ liệu được tạo thành công dựa trên mã PHP ..

Php tương tác với SQL như thế nào?

Ngôn ngữ PHP cung cấp các chức năng làm cho việc giao tiếp với MySQL cực kỳ đơn giản.Bạn sử dụng các chức năng PHP để gửi các truy vấn SQL đến cơ sở dữ liệu.Bạn không cần biết chi tiết giao tiếp với MySQL;PHP xử lý các chi tiết.Bạn chỉ cần biết các truy vấn SQL và cách sử dụng các hàm PHP.You use PHP functions to send SQL queries to the database. You don't need to know the details of communicating with MySQL; PHP handles the details. You only need to know the SQL queries and how to use the PHP functions.

Chức năng PHP nào được sử dụng để kết nối cơ sở dữ liệu?

Để tạo kết nối cơ sở dữ liệu trong PHP, hãy sử dụng hàm mysqli_connect ().mysqli_connect().

Làm thế nào kết nối cơ sở dữ liệu cho tập lệnh PHP giải thích với ví dụ phù hợp?

Ví dụ kết nối PHP MySQL..
$ host = 'localhost: 3306' ;.
$ user = '';..
$ pass = '';..
$ Conn = mysqli_connect ($ host, $ user, $ pass) ;.
if (! $ Conn).
chết ('không thể kết nối:'. mysqli_error ()) ;.