Hướng dẫn pdo php extension windows - cửa sổ mở rộng pdo php

Thứ tư, 25/03/2020 | 00:00 GMT+7

Nội dung chính

  • Yêu cầu
  • Bước 1 - Tạo database mẫu và bảng
  • Bước 2 - Thiết kế một lớp PHP để xử lý các giao dịch MySQL
  • Bước 3 - Tạo tập lệnh PHP để sử dụng lớp giao dịch DBT
  • Bước 4 - Xác nhận các mục nhập trong database của bạn
  • Kết luận

Một giao dịch MySQL là một group các lệnh SQL liên quan đến logic được thực thi trong database như một đơn vị duy nhất. Các giao dịch được sử dụng để thực thi tuân theo ACID (Tính nguyên tử, tính nhất quán, tính cách ly và độ bền) trong một ứng dụng. Đây là một bộ tiêu chuẩn chi phối độ tin cậy của các hoạt động xử lý trong database .


Tính nguyên tử đảm bảo sự thành công của các giao dịch liên quan hoặc thất bại hoàn toàn nếu xảy ra lỗi. Tính nhất quán đảm bảo tính hợp lệ của dữ liệu được gửi đến database theo logic nghiệp vụ đã xác định. Cách ly là việc thực hiện chính xác các giao dịch đồng thời đảm bảo các tác động của các client khác nhau kết nối với database không ảnh hưởng đến nhau. Độ bền đảm bảo các giao dịch liên quan đến lôgic vẫn ở trong database vĩnh viễn.

Các câu lệnh SQL được phát hành thông qua một giao dịch phải thành công hoặc thất bại hoàn toàn. Nếu bất kỳ truy vấn nào không thành công, MySQL sẽ khôi phục các thay đổi và chúng không bao giờ được commit với database .

Một ví dụ điển hình để hiểu cách giao dịch MySQL hoạt động là một trang web thương mại điện tử. Khi khách hàng đặt hàng, ứng dụng sẽ chèn các bản ghi vào một số bảng, chẳng hạn như:

  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
2 và sản
  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
3
  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
2 , tùy thuộc vào logic nghiệp vụ. Bản ghi nhiều bảng liên quan đến một đơn hàng phải được gửi nguyên tử đến database dưới dạng một đơn vị logic duy nhất.

Một trường hợp sử dụng khác là trong một ứng dụng ngân hàng. Khi khách hàng chuyển tiền, một vài giao dịch sẽ được gửi đến database . Tài khoản của người gửi được ghi nợ và account của bên nhận được ghi có. Hai giao dịch phải được commit đồng thời. Nếu một trong số chúng không thành công, database sẽ trở lại trạng thái ban đầu và không có thay đổi nào được lưu vào đĩa.

Trong hướng dẫn này, bạn sẽ sử dụng Phần mở rộng PDO PHP , cung cấp giao diện để làm việc với database bằng PHP, để thực hiện các giao dịch MySQL trên server Ubuntu 18.04.

Yêu cầu

Bước 1 - Tạo database mẫu và bảng

  • Bước 2 - Thiết kế một lớp PHP để xử lý các giao dịch MySQL
  • Bước 3 - Tạo tập lệnh PHP để sử dụng lớp giao dịch DBT

Bước 1 - Tạo database mẫu và bảng

Bước 2 - Thiết kế một lớp PHP để xử lý các giao dịch MySQL

  • sudo mysql -u root -p

Bước 3 - Tạo tập lệnh PHP để sử dụng lớp giao dịch DBT

  • CREATE DATABASE sample_store;

Bước 4 - Xác nhận các mục nhập trong database của bạn

Output

Query OK, 1 row affected (0.00 sec)

Kết luận

  • CREATE USER 'sample_user'@'localhost' IDENTIFIED BY 'PASSWORD';

Một giao dịch MySQL là một group các lệnh SQL liên quan đến logic được thực thi trong database như một đơn vị duy nhất. Các giao dịch được sử dụng để thực thi tuân theo ACID (Tính nguyên tử, tính nhất quán, tính cách ly và độ bền) trong một ứng dụng. Đây là một bộ tiêu chuẩn chi phối độ tin cậy của các hoạt động xử lý trong database .

  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';

Tính nguyên tử đảm bảo sự thành công của các giao dịch liên quan hoặc thất bại hoàn toàn nếu xảy ra lỗi. Tính nhất quán đảm bảo tính hợp lệ của dữ liệu được gửi đến database theo logic nghiệp vụ đã xác định. Cách ly là việc thực hiện chính xác các giao dịch đồng thời đảm bảo các tác động của các client khác nhau kết nối với database không ảnh hưởng đến nhau. Độ bền đảm bảo các giao dịch liên quan đến lôgic vẫn ở trong database vĩnh viễn.

  • FLUSH PRIVILEGES;

Các câu lệnh SQL được phát hành thông qua một giao dịch phải thành công hoặc thất bại hoàn toàn. Nếu bất kỳ truy vấn nào không thành công, MySQL sẽ khôi phục các thay đổi và chúng không bao giờ được commit với database .

Output

Query OK, 0 rows affected (0.01 sec) . . .

Một ví dụ điển hình để hiểu cách giao dịch MySQL hoạt động là một trang web thương mại điện tử. Khi khách hàng đặt hàng, ứng dụng sẽ chèn các bản ghi vào một số bảng, chẳng hạn như:

  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
2 và sản
  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
3
  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
2 , tùy thuộc vào logic nghiệp vụ. Bản ghi nhiều bảng liên quan đến một đơn hàng phải được gửi nguyên tử đến database dưới dạng một đơn vị logic duy nhất.

Một trường hợp sử dụng khác là trong một ứng dụng ngân hàng. Khi khách hàng chuyển tiền, một vài giao dịch sẽ được gửi đến database . Tài khoản của người gửi được ghi nợ và account của bên nhận được ghi có. Hai giao dịch phải được commit đồng thời. Nếu một trong số chúng không thành công, database sẽ trở lại trạng thái ban đầu và không có thay đổi nào được lưu vào đĩa.

  • QUIT;

Trong hướng dẫn này, bạn sẽ sử dụng Phần mở rộng PDO PHP , cung cấp giao diện để làm việc với database bằng PHP, để thực hiện các giao dịch MySQL trên server Ubuntu 18.04.

Output

Bye.

Trước khi bắt đầu, bạn cần những thứ sau:

  • sudo mysql -u sample_user -p

Một server Ubuntu 18.04 được cài đặt theo Cài đặt server ban đầu với Ubuntu 18.04 , bao gồm cả user không phải root có quyền sudo .

Apache, MySQL và PHP được cài đặt trên hệ thống. Bạn có thể làm theo hướng dẫn về Cách cài đặt ngăn xếp Linux, Apache, MySQL, PHP (LAMP) trên Ubuntu 18.04 . Bạn có thể bỏ qua Bước 4 ( cài đặt server ảo) và làm việc trực tiếp với cài đặt Apache mặc định.

  • CREATE DATABASE sample_store;
0

Trước tiên, bạn sẽ tạo một database mẫu và thêm một số bảng trước khi bắt đầu làm việc với các giao dịch MySQL. Đầu tiên, đăng nhập vào server MySQL của bạn với quyền root :

  • CREATE DATABASE sample_store;
1

Khi được yêu cầu , hãy nhập password root MySQL của bạn và nhấn

  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
5 để tiếp tục. Sau đó, tạo một database , với mục đích của hướng dẫn này, ta sẽ gọi database
  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
6 :

  • CREATE DATABASE sample_store;
2

Bạn sẽ thấy kết quả sau:

Tạo một user được gọi là

  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
7 cho database của bạn. Hãy nhớ thay thế
  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
8 bằng một giá trị mạnh:

Cấp đầy đủ các quyền cho user của bạn đối với database

  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
6 :

Khi bạn đã tạo bảng

  • FLUSH PRIVILEGES;
4 của bạn , bạn sẽ nhận được kết quả sau:

  • CREATE DATABASE sample_store;
3

Tiếp theo, thêm một số mục vào bảng

  • FLUSH PRIVILEGES;
4 bằng cách chạy các lệnh sau:

  • CREATE DATABASE sample_store;
4

Bạn sẽ thấy kết quả tương tự như sau sau mỗi thao tác

  • QUIT;
0 :

  • CREATE DATABASE sample_store;
5

Sau đó, xác minh dữ liệu đã được thêm vào bảng sản phẩm:

  • CREATE DATABASE sample_store;
6

Bạn sẽ thấy danh sách bốn sản phẩm mà bạn đã chèn:

  • CREATE DATABASE sample_store;
7

Tiếp theo, bạn sẽ tạo một bảng

  • QUIT;
1 để chứa thông tin cơ bản về khách hàng:

  • CREATE DATABASE sample_store;
8

Như trong bảng

  • FLUSH PRIVILEGES;
4 , bạn sử dụng kiểu dữ liệu
  • FLUSH PRIVILEGES;
7 cho
  • QUIT;
4 và điều này sẽ đảm bảo bảng có thể hỗ trợ rất nhiều khách hàng lên đến 2 ^ 63-1 bản ghi. Từ khóa
  • FLUSH PRIVILEGES;
9 tăng giá trị của các cột khi bạn chèn khách hàng mới.

Vì cột

  • QUIT;
6 chấp nhận giá trị chữ và số, bạn sử dụng kiểu dữ liệu

Output

Query OK, 0 rows affected (0.01 sec) . . .
1 với giới hạn

Output

Query OK, 0 rows affected (0.01 sec) . . .
2 ký tự. , bạn sử dụng

Output

Query OK, 0 rows affected (0.01 sec) . . .
5 lưu trữ

Output

Query OK, 0 rows affected (0.01 sec) . . .
6 đến các giao dịch hỗ trợ.

Sau khi chạy lệnh trước đó để tạo bảng

  • QUIT;
1 , bạn sẽ thấy kết quả sau:

  • CREATE DATABASE sample_store;
3

Bạn sẽ thêm ba khách hàng mẫu vào bảng. Chạy các lệnh sau:

Output

Query OK, 1 row affected (0.00 sec)
0

Khi khách hàng đã được thêm vào, bạn sẽ thấy kết quả giống như sau :

  • CREATE DATABASE sample_store;
5

Sau đó, xác minh dữ liệu trong bảng

  • QUIT;
1 :

Output

Query OK, 1 row affected (0.00 sec)
2

Bạn sẽ thấy danh sách ba khách hàng:

Output

Query OK, 1 row affected (0.00 sec)
3

Tiếp theo, bạn sẽ tạo một bảng

  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
2 để ghi lại các đơn đặt hàng của các khách hàng khác nhau. Để tạo bảng
  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
2 , hãy thực hiện lệnh sau:

Output

Query OK, 1 row affected (0.00 sec)
4

Bạn sử dụng cột

Output

Bye.
5 làm
  • FLUSH PRIVILEGES;
8 . Kiểu dữ liệu
  • FLUSH PRIVILEGES;
7 cho phép bạn chứa tối đa 2 ^ 63-1 đơn đặt hàng và sẽ tự động tăng lên sau mỗi lần chèn đơn đặt hàng. Trường

Output

Bye.
8 sẽ chứa ngày và giờ thực tế đơn đặt hàng được đặt và do đó, bạn sử dụng

Output

Bye.
9 dữ liệu

Output

Bye.
9 .
  • QUIT;
4 liên quan đến bảng
  • QUIT;
1 mà bạn đã tạo trước đó.

Bạn sẽ thấy kết quả sau:

  • CREATE DATABASE sample_store;
3

Vì đơn đặt hàng của một khách hàng có thể chứa nhiều mặt hàng, bạn cần tạo một bảng

  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
3 để chứa thông tin này.

Để tạo bảng

  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
3 , hãy chạy lệnh sau:

Output

Query OK, 1 row affected (0.00 sec)
6

Bạn sử dụng

  • sudo mysql -u sample_user -p
5 làm
  • FLUSH PRIVILEGES;
8 và điều này sẽ tự động tăng lên sau mỗi lần chèn bản ghi.

Output

Bye.
5 và
  • FLUSH PRIVILEGES;
6 tương ứng với các
  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
2 và bảng
  • FLUSH PRIVILEGES;
4 . Cột

Output

Query OK, 0 rows affected (0.01 sec) . . .
3 thuộc loại dữ liệu

Output

Query OK, 0 rows affected (0.01 sec) . . .
4 để chứa các giá trị thực.

Công cụ lưu trữ

Output

Query OK, 0 rows affected (0.01 sec) . . .
5 phải trùng với các bảng khác đã tạo trước đó vì đơn đặt hàng của một khách hàng sẽ ảnh hưởng đến nhiều bảng đồng thời sử dụng các giao dịch.

Đầu ra của bạn sẽ xác nhận việc tạo bảng:

  • CREATE DATABASE sample_store;
3

Hiện tại, bạn sẽ không thêm bất kỳ dữ liệu nào vào các bảng

  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
2 và
  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
3 nhưng bạn sẽ thực hiện việc này sau bằng cách sử dụng một tập lệnh PHP triển khai các giao dịch MySQL.

Đăng xuất khỏi server MySQL:

  • QUIT;

Lược đồ database của bạn hiện đã hoàn tất và bạn đã điền vào nó một số bản ghi. Đến đây bạn sẽ tạo một lớp PHP để xử lý các kết nối database và các giao dịch MySQL.

Bước 2 - Thiết kế một lớp PHP để xử lý các giao dịch MySQL

Trong bước này, bạn sẽ tạo một lớp PHP sẽ sử dụng PDO (PHP Data Objects) để xử lý các giao dịch MySQL. Lớp sẽ kết nối với database MySQL của bạn và chèn dữ liệu nguyên tử vào database .

Lưu file lớp trong folder root của web server Apache của bạn. Để thực hiện việc này, hãy tạo file

  • CREATE DATABASE sample_store;
06 bằng editor của bạn:

Output

Query OK, 1 row affected (0.00 sec)
9

Sau đó, thêm mã sau vào file . Thay thế

  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
8 bằng giá trị bạn đã tạo ở Bước 1:

/var/www/html/DBTransaction.php

  • CREATE USER 'sample_user'@'localhost' IDENTIFIED BY 'PASSWORD';
0

Về phía đầu của

  • CREATE DATABASE sample_store;
08 lớp, PDO sẽ sử dụng các hằng số (
  • CREATE DATABASE sample_store;
09 ,
  • CREATE DATABASE sample_store;
10 ,
  • CREATE DATABASE sample_store;
11 , và
  • CREATE DATABASE sample_store;
12 ) để khởi tạo và kết nối với database mà bạn đã tạo ở bước 1.

Lưu ý: Vì ta đang trình diễn các giao dịch MySQL ở quy mô nhỏ ở đây, ta đã khai báo các biến database trong lớp

  • CREATE DATABASE sample_store;
08 . Trong một dự án production lớn, thông thường bạn sẽ tạo một file cấu hình riêng và tải các hằng số database từ file đó bằng cách sử dụng câu lệnh PHP
  • CREATE DATABASE sample_store;
14 .
Vì ta đang trình diễn các giao dịch MySQL ở quy mô nhỏ ở đây, ta đã khai báo các biến database trong lớp
  • CREATE DATABASE sample_store;
08 . Trong một dự án production lớn, thông thường bạn sẽ tạo một file cấu hình riêng và tải các hằng số database từ file đó bằng cách sử dụng câu lệnh PHP
  • CREATE DATABASE sample_store;
14 .

Tiếp theo, bạn đặt hai thuộc tính cho lớp PDO:

    • CREATE DATABASE sample_store;
    15 : Thuộc tính này hướng dẫn PDO ném một ngoại lệ nếu gặp lỗi. Những lỗi như vậy có thể được ghi lại để gỡ lỗi.
    • CREATE DATABASE sample_store;
    16 : Tùy chọn này vô hiệu hóa mô phỏng các câu lệnh đã chuẩn bị và cho phép công cụ database MySQL tự chuẩn bị các câu lệnh.

Bây giờ hãy thêm mã sau vào file của bạn để tạo các phương thức cho lớp của bạn:

/var/www/html/DBTransaction.php

  • CREATE USER 'sample_user'@'localhost' IDENTIFIED BY 'PASSWORD';
1

Về phía đầu của

  • CREATE DATABASE sample_store;
08 lớp, PDO sẽ sử dụng các hằng số (
  • CREATE DATABASE sample_store;
09 ,
  • CREATE DATABASE sample_store;
10 ,
  • CREATE DATABASE sample_store;
11 , và
  • CREATE DATABASE sample_store;
12 ) để khởi tạo và kết nối với database mà bạn đã tạo ở bước 1.

Lưu ý: Vì ta đang trình diễn các giao dịch MySQL ở quy mô nhỏ ở đây, ta đã khai báo các biến database trong lớp

  • CREATE DATABASE sample_store;
08 . Trong một dự án production lớn, thông thường bạn sẽ tạo một file cấu hình riêng và tải các hằng số database từ file đó bằng cách sử dụng câu lệnh PHP
  • CREATE DATABASE sample_store;
14 .

  • Tiếp theo, bạn đặt hai thuộc tính cho lớp PDO:

    • CREATE DATABASE sample_store;
    23 : Phương thức này có hai đối số. Biến
    • CREATE DATABASE sample_store;
    27 giữ câu lệnh SQL sẽ được thực thi trong khi biến
    • CREATE DATABASE sample_store;
    28 là một mảng dữ liệu được liên kết với câu lệnh SQL vì bạn đang sử dụng các câu lệnh đã chuẩn bị. Dữ liệu được truyền dưới dạng một mảng cho phương
    • CREATE DATABASE sample_store;
    23 .

    • CREATE DATABASE sample_store;
    24 : Phương thức này commit các thay đổi đối với database vĩnh viễn bằng cách đưa ra lệnh
    • CREATE DATABASE sample_store;
    31 . Tuy nhiên, nếu có lỗi và các giao dịch có vấn đề, phương thức này sẽ gọi phương thức
    • CREATE DATABASE sample_store;
    32 để hoàn nguyên database về trạng thái ban đầu trong trường hợp có ngoại lệ PDO.

Lớp

  • CREATE DATABASE sample_store;
08 của bạn khởi tạo một giao dịch, chuẩn bị các lệnh SQL khác nhau để được thực thi và cuối cùng commit các thay đổi nguyên tử đối với database nếu không có vấn đề gì, nếu không, giao dịch sẽ được khôi phục. Ngoài ra, lớp cho phép bạn truy xuất bản ghi

Output

Bye.
5 bạn vừa tạo bằng cách truy cập thuộc tính công cộng
  • CREATE DATABASE sample_store;
35 .

Lớp

  • CREATE DATABASE sample_store;
08 hiện đã sẵn sàng để được gọi và sử dụng bởi bất kỳ mã PHP nào mà bạn sẽ tạo tiếp theo.

Bước 3 - Tạo tập lệnh PHP để sử dụng lớp giao dịch DBT

Bạn sẽ tạo một tập lệnh PHP sẽ triển khai lớp

  • CREATE DATABASE sample_store;
08 và gửi một group lệnh SQL đến database MySQL. Bạn sẽ bắt chước quy trình thực hiện đơn đặt hàng của khách hàng trong giỏ hàng trực tuyến.

Các truy vấn SQL này sẽ ảnh hưởng đến các

  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
2 và bảng các sản
  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
3 . Lớp
  • CREATE DATABASE sample_store;
08 của bạn chỉ nên cho phép thay đổi database nếu tất cả các truy vấn được thực thi mà không có bất kỳ lỗi nào. Nếu không, bạn sẽ gặp lại lỗi và mọi thay đổi đã cố gắng sẽ quay trở lại.

Bạn đang tạo một đơn đặt hàng cho khách hàng

  • CREATE DATABASE sample_store;
41 được xác định với customer_id
  • CREATE DATABASE sample_store;
42 . Đơn đặt hàng của khách hàng có ba mặt hàng khác nhau với số lượng khác nhau từ bảng
  • FLUSH PRIVILEGES;
4 . Tập lệnh PHP của bạn lấy dữ liệu đơn đặt hàng của khách hàng và gửi nó vào lớp
  • CREATE DATABASE sample_store;
08 .

Tạo file

  • CREATE DATABASE sample_store;
45 :

  • CREATE USER 'sample_user'@'localhost' IDENTIFIED BY 'PASSWORD';
2

Sau đó, thêm mã sau vào file :

/var/www/html/orders.php

  • CREATE USER 'sample_user'@'localhost' IDENTIFIED BY 'PASSWORD';
3

Bạn đã tạo một tập lệnh PHP khởi tạo một version của lớp

  • CREATE DATABASE sample_store;
08 mà bạn đã tạo ở Bước 2.

Trong tập lệnh này, bạn bao gồm file

  • CREATE DATABASE sample_store;
06 và bạn khởi tạo lớp
  • CREATE DATABASE sample_store;
08 . Tiếp theo, bạn chuẩn bị một mảng đa chiều của tất cả các sản phẩm mà khách hàng đang đặt hàng từ cửa hàng. Bạn cũng gọi phương thức
  • CREATE DATABASE sample_store;
49 để bắt đầu một giao dịch.

Tiếp theo, thêm đoạn mã sau vào để hoàn thành tập lệnh

  • CREATE DATABASE sample_store;
45 của bạn:

/var/www/html/orders.php

  • CREATE USER 'sample_user'@'localhost' IDENTIFIED BY 'PASSWORD';
4

Bạn đã tạo một tập lệnh PHP khởi tạo một version của lớp

  • CREATE DATABASE sample_store;
08 mà bạn đã tạo ở Bước 2.

Trong tập lệnh này, bạn bao gồm file

  • CREATE DATABASE sample_store;
06 và bạn khởi tạo lớp
  • CREATE DATABASE sample_store;
08 . Tiếp theo, bạn chuẩn bị một mảng đa chiều của tất cả các sản phẩm mà khách hàng đang đặt hàng từ cửa hàng. Bạn cũng gọi phương thức
  • CREATE DATABASE sample_store;
49 để bắt đầu một giao dịch.

Tiếp theo, thêm đoạn mã sau vào để hoàn thành tập lệnh

  • CREATE DATABASE sample_store;
45 của bạn:

Lưu file bằng cách nhấn

  • CREATE DATABASE sample_store;
17 +
  • CREATE DATABASE sample_store;
18 ,
  • CREATE DATABASE sample_store;
19 , sau đó
  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
5 .

Bạn chuẩn bị lệnh để chèn vào bảng đơn hàng thông qua phương

  • CREATE DATABASE sample_store;
23 . Sau đó, bạn lấy giá trị của thuộc tính công cộng
  • CREATE DATABASE sample_store;
35 từ lớp
  • CREATE DATABASE sample_store;
08 và sử dụng nó làm
  • CREATE DATABASE sample_store;
58 .

Khi bạn có

  • CREATE DATABASE sample_store;
58 , bạn sử dụng ID duy nhất để chèn các mặt hàng đặt hàng của khách hàng vào bảng
  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
3 .

Cuối cùng, bạn gọi phương thức

  • CREATE DATABASE sample_store;
24 để commit toàn bộ chi tiết đơn hàng của khách hàng vào database nếu không có vấn đề gì. Nếu không, phương thức
  • CREATE DATABASE sample_store;
24 sẽ khôi phục các thay đổi đã cố gắng.

Đến đây bạn sẽ chạy tập lệnh

  • CREATE DATABASE sample_store;
45 trong trình duyệt của bạn . Chạy phần sau và thay thế
  • CREATE DATABASE sample_store;
64 bằng địa chỉ IP công cộng của server của bạn:

  • CREATE DATABASE sample_store;
65

Bạn sẽ thấy xác nhận profile đã được gửi thành công:

Tập lệnh PHP của bạn đang hoạt động như mong đợi và đơn đặt hàng cùng với các sản phẩm đơn đặt hàng được liên kết đã được gửi đến database một cách nguyên tử.

Bạn đã chạy file

  • CREATE DATABASE sample_store;
45 trên cửa sổ trình duyệt. Tập lệnh đã gọi đến lớp
  • CREATE DATABASE sample_store;
08 lớp này lần lượt gửi chi tiết
  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
2 đến database . Trong bước tiếp theo, bạn sẽ xác minh nếu các bản ghi được lưu vào các bảng database liên quan.

  • sudo mysql -u sample_user -p

Bước 4 - Xác nhận các mục nhập trong database của bạn

Trong bước này, bạn sẽ kiểm tra xem giao dịch bắt đầu từ cửa sổ trình duyệt cho đơn đặt hàng của khách hàng có được đăng lên bảng database như mong đợi hay không.

  • CREATE DATABASE sample_store;
0

Để thực hiện việc này, hãy đăng nhập lại vào database MySQL của bạn:

  • CREATE DATABASE sample_store;
1

Nhập password cho

  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
7 và nhấn
  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
5 để tiếp tục.

  • CREATE USER 'sample_user'@'localhost' IDENTIFIED BY 'PASSWORD';
8

Chuyển sang database

  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
6 :

  • CREATE USER 'sample_user'@'localhost' IDENTIFIED BY 'PASSWORD';
9

Đảm bảo database được thay đổi trước khi tiếp tục bằng cách xác nhận kết quả sau:

  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
0

Sau đó, ra lệnh sau để truy xuất bản ghi từ bảng

  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
2 :

  • GRANT ALL PRIVILEGES ON sample_store.* TO 'sample_user'@'localhost';
1

Điều này sẽ hiển thị kết quả sau chi tiết đơn đặt hàng của khách hàng:

Kết luận

Trong hướng dẫn này, bạn đã sử dụng PHP PDO để làm việc với các giao dịch MySQL. Mặc dù đây không phải là một bài báo kết luận về việc thiết kế một phần mềm thương mại điện tử, nhưng nó đã cung cấp một ví dụ để sử dụng các giao dịch MySQL trong các ứng dụng của bạn.

Để tìm hiểu thêm về mô hình MySQL ACID, hãy xem xét truy cập InnoDB và hướng dẫn Mô hình ACID từ trang web MySQL chính thức. Truy cập trang nội dung MySQL của ta để biết thêm các hướng dẫn, bài viết và Q&A liên quan.


Tags:


Các tin liên quan

Cách triển khai ứng dụng PHP với Kubernetes trên Ubuntu 18.04 2019-08-07 Cách triển khai một ứng dụng PHP với Kubernetes trên Ubuntu 16.04 2019-01-18 Cách tạo địa chỉ kỹ thuật số ngắn và duy nhất cho bất kỳ vị trí nào bằng AngularJS và PHP 2018-08-16 Cách thay đổi cài đặt PHP của bạn trên Ubuntu 14.04 2016-03-25 Cách thiết lập XHProf và XHGui để lập profile ứng dụng PHP trên Ubuntu 14.04 2016-02-19 Cách nâng cấp lên PHP 7 trên CentOS 7 2016-01-14 Cách nâng cấp lên PHP 7 trên Ubuntu 14.04 2015-12-15 Cách triển khai nhiều ứng dụng PHP bằng Ansible trên Ubuntu 14.04 2015-06-28 Cách triển khai ứng dụng PHP nâng cao bằng Ansible trên Ubuntu 14.04 2015-06-02 Cách triển khai một ứng dụng PHP cơ bản bằng Ansible trên Ubuntu 14.04 2015-04-14
2019-08-07
Cách triển khai một ứng dụng PHP với Kubernetes trên Ubuntu 16.04
2019-01-18
Cách tạo địa chỉ kỹ thuật số ngắn và duy nhất cho bất kỳ vị trí nào bằng AngularJS và PHP
2018-08-16
Cách thay đổi cài đặt PHP của bạn trên Ubuntu 14.04
2016-03-25
Cách thiết lập XHProf và XHGui để lập profile ứng dụng PHP trên Ubuntu 14.04
2016-02-19
Cách nâng cấp lên PHP 7 trên CentOS 7
2016-01-14
Cách nâng cấp lên PHP 7 trên Ubuntu 14.04
2015-12-15
Cách triển khai nhiều ứng dụng PHP bằng Ansible trên Ubuntu 14.04
2015-06-28
Cách triển khai ứng dụng PHP nâng cao bằng Ansible trên Ubuntu 14.04
2015-06-02
Cách triển khai một ứng dụng PHP cơ bản bằng Ansible trên Ubuntu 14.04
2015-04-14