Tại sao PHP được sử dụng trong cơ sở dữ liệu?

Nhiều lập trình viên PHP đã học cách truy cập cơ sở dữ liệu bằng cách sử dụng phần mở rộng MySQL hoặc MySQLi. Kể từ PHP 5. 1, có một cách tốt hơn. Các đối tượng dữ liệu PHP [PDO] cung cấp các phương thức cho các câu lệnh đã chuẩn bị sẵn và làm việc với các đối tượng sẽ giúp bạn làm việc hiệu quả hơn rất nhiều

Trình tạo và khung CRUD

Mã cơ sở dữ liệu lặp đi lặp lại, nhưng rất quan trọng để làm đúng. Đó là lúc các trình tạo và khung PHP CRUD xuất hiện—chúng tiết kiệm thời gian cho bạn bằng cách tự động tạo tất cả mã lặp đi lặp lại này để bạn có thể tập trung vào các phần khác của ứng dụng.  

Trên CodeCanyon, bạn sẽ tìm thấy các trình tạo và khung CRUD sẽ giúp bạn cung cấp các sản phẩm chất lượng vượt trội đúng thời hạn. [CRUD là từ viết tắt của tạo, đọc, cập nhật và xóa—các thao tác cơ bản đối với cơ sở dữ liệu. ]

  • 7 Framework và trình tạo PHP CRUD hữu ích có sẵn trên CodeCanyon

    Frank Lucas

    27 Thg 12 2021

  • Nhanh chóng xây dựng giao diện PHP CRUD với Công cụ tạo CRUD nâng cao PDO

    Sajal Soni

    15 Thg 1 2021

Giới thiệu về PDO

PDO—PHP Data Objects—là lớp truy cập cơ sở dữ liệu cung cấp một phương thức truy cập thống nhất cho nhiều cơ sở dữ liệu

Nó không tính đến cú pháp dành riêng cho cơ sở dữ liệu, nhưng có thể cho phép quá trình chuyển đổi cơ sở dữ liệu và nền tảng trở nên khá dễ dàng, chỉ bằng cách chuyển đổi chuỗi kết nối trong nhiều trường hợp

Hướng dẫn này không có nghĩa là hướng dẫn hoàn chỉnh về SQL. Nó được viết chủ yếu cho những người hiện đang sử dụng tiện ích mở rộng 

try {
14 hoặc 
try {
15 để giúp họ chuyển sang PDO di động và mạnh mẽ hơn

Khi nói đến các hoạt động cơ sở dữ liệu trong PHP, PDO cung cấp rất nhiều lợi thế so với cú pháp thô. Hãy nhanh chóng liệt kê một số

  • lớp trừu tượng
  • cú pháp hướng đối tượng
  • hỗ trợ cho báo cáo chuẩn bị
  • xử lý ngoại lệ tốt hơn
  • API an toàn và có thể tái sử dụng
  • hỗ trợ cho tất cả các cơ sở dữ liệu phổ biến

Hỗ trợ cơ sở dữ liệu

Tiện ích mở rộng có thể hỗ trợ bất kỳ cơ sở dữ liệu nào mà trình điều khiển PDO đã được viết cho. Tại thời điểm viết bài này, các trình điều khiển cơ sở dữ liệu sau có sẵn

  • try {
    
    16 [FreeTDS/Microsoft SQL Server/Sybase]
  • try {
    
    17 [Firebird/Interbase 6]
  • try {
    
    18 [IBM DB2]
  • try {
    
    19 [Máy chủ IBM Informix Dynamic]
  • try {
    
    20 [MySQL 3. x/4. x/5. x]
  • try {
    
    21 [Giao diện cuộc gọi của Oracle]
  • try {
    
    22 [ODBC v3 [IBM DB2, unixODBC và win32 ODBC]]
  • try {
    
    23 [PostgreSQL]
  • try {
    
    24 [SQLite 3 và SQLite 2]
  • try {
    
    25 [D]

Tất cả các trình điều khiển này không nhất thiết phải có trên hệ thống của bạn;

try {
2____13

Đang kết nối

Các cơ sở dữ liệu khác nhau có thể có các phương thức kết nối hơi khác nhau. Dưới đây, bạn có thể xem phương pháp kết nối với một số cơ sở dữ liệu phổ biến nhất. Bạn sẽ nhận thấy rằng ba cái đầu giống hệt nhau, ngoại trừ kiểu cơ sở dữ liệu—và sau đó SQLite có cú pháp riêng của nó

try {
2
try {
try {
6
try {
7
try {
8
try {
9
try {
0
try {
1
try {
30
try {
31
try {
32
try {
33
try {
34
try {
35
try {
36
try {
31
try {
38
try {
39
try {
20
try {
21
try {
22
try {
23
try {
24
try {
25
try {
26
try {
27_____
try {
38

Vui lòng lưu ý khối try/catch. Bạn phải luôn kết thúc các thao tác PDO của mình trong một lần thử/bắt và sử dụng cơ chế ngoại lệ—sẽ sớm có thêm thông tin về vấn đề này. Thông thường, bạn sẽ chỉ thực hiện một kết nối duy nhất—có một số kết nối được liệt kê để hiển thị cho bạn cú pháp.

try {
26 là viết tắt của 'xử lý cơ sở dữ liệu' và sẽ được sử dụng trong suốt hướng dẫn này

Bạn có thể đóng bất kỳ kết nối nào bằng cách đặt tay cầm thành null

try {
2____01
try {
6____03

Bạn có thể nhận thêm thông tin về các tùy chọn dành riêng cho cơ sở dữ liệu và/hoặc chuỗi kết nối cho các cơ sở dữ liệu khác từ PHP. bọc lưới

Ngoại lệ và PDO

PDO có thể sử dụng các ngoại lệ để xử lý lỗi, điều đó có nghĩa là bất kỳ điều gì bạn làm với PDO phải được bao bọc trong một khối thử/bắt. Bạn có thể buộc PDO vào một trong ba chế độ lỗi bằng cách đặt thuộc tính chế độ lỗi trên bộ điều khiển cơ sở dữ liệu mới tạo của bạn. Đây là cú pháp

try {
2
try {
5
try {
6
try {
7
try {
8
try {
9

Bất kể bạn đặt chế độ lỗi nào, lỗi kết nối sẽ luôn tạo ra ngoại lệ và việc tạo kết nối phải luôn được chứa trong khối thử/bắt

try {
27

Đây là chế độ lỗi mặc định. Nếu bạn để nó ở chế độ này, bạn sẽ phải kiểm tra lỗi theo cách mà bạn có thể đã quen nếu bạn đã sử dụng tiện ích mở rộng 

try {
14 hoặc 
try {
15. Hai phương pháp còn lại phù hợp hơn cho lập trình DRY

try {
30

Chế độ này sẽ đưa ra cảnh báo PHP tiêu chuẩn và cho phép chương trình tiếp tục thực hiện. Nó hữu ích cho việc gỡ lỗi

try {
31

Đây là chế độ bạn muốn trong hầu hết các tình huống. Nó kích hoạt một ngoại lệ, cho phép bạn xử lý lỗi một cách nhẹ nhàng và ẩn dữ liệu có thể giúp ai đó khai thác hệ thống của bạn. Đây là một ví dụ về việc tận dụng các ngoại lệ

try {
2
try {
61
try {
6
try {
try {
8
try {
35
try {
0
try {
67
try {
30
try {
31
try {
32
try {
71
try {
34
try {
73
try {
36
try {
23
try {
38
try {
25
try {
20
try {
79
try {
22
try {
81
try {
24
try {
23

Có lỗi cố ý trong câu lệnh chọn; . Ngoại lệ gửi chi tiết lỗi đến tệp nhật ký và hiển thị thông báo thân thiện [hoặc không thân thiện] cho người dùng

Chèn và cập nhật

Chèn dữ liệu mới [hoặc cập nhật dữ liệu hiện có] là một trong những thao tác cơ sở dữ liệu phổ biến hơn. Sử dụng PHP PDO, đây thường là quy trình gồm hai bước. Mọi nội dung được đề cập trong phần này đều áp dụng như nhau cho cả hoạt động

try {
32 và 
try {
33

Đây là một ví dụ về kiểu chèn cơ bản nhất

try {
2____185
try {
6
try {
87
try {
8
try {
89

Bạn cũng có thể thực hiện thao tác tương tự bằng cách sử dụng phương thức 

try {
34, với ít lệnh gọi hơn. Trong hầu hết các tình huống, bạn sẽ sử dụng phương pháp dài hơn để có thể tận dụng các câu lệnh đã chuẩn bị sẵn. Ngay cả khi bạn chỉ sử dụng nó một lần, việc sử dụng các câu lệnh đã chuẩn bị sẵn sẽ giúp bảo vệ bạn khỏi các cuộc tấn công SQL injection

báo cáo chuẩn bị

Sử dụng các câu lệnh đã chuẩn bị sẽ giúp bảo vệ bạn khỏi SQL injection

Một câu lệnh đã chuẩn bị là một câu lệnh SQL được biên dịch sẵn có thể được thực thi nhiều lần bằng cách chỉ gửi dữ liệu đến máy chủ. Nó có thêm lợi thế là tự động làm cho dữ liệu được sử dụng trong trình giữ chỗ an toàn trước các cuộc tấn công SQL injection

Bạn sử dụng câu lệnh đã chuẩn bị sẵn bằng cách bao gồm các trình giữ chỗ trong SQL của mình. Dưới đây là ba ví dụ. một cái không có chỗ dành sẵn, một cái có chỗ dành sẵn không tên và một cái có chỗ dành sẵn được đặt tên

try {
2______191
try {
6
try {
93
try {
8
try {
31
try {
0
try {
97
try {
30
try {
99
try {
32
try {
31
try {
34
try {
03
try {
36
try {
05

Bạn muốn tránh phương pháp đầu tiên; . Lựa chọn sử dụng các trình giữ chỗ có tên hoặc không có tên sẽ ảnh hưởng đến cách bạn đặt dữ liệu cho các câu lệnh đó

Trình giữ chỗ chưa được đặt tên

try {
2
try {
07
try {
6
try {
09
try {
8
try {
11
try {
0
try {
13
try {
30
try {
31
try {
32
try {
17
try {
34
try {
19
try {
36
try {
301
try {
38
try {
303
try {
20
try {
89
try {
22
try {
31
try {
24
try {
309
try {
26
try {
311
try {
28
try {
313
try {
314
try {
315
try {
316
try {
89

Có hai bước ở đây. Đầu tiên, chúng tôi gán các biến cho các trình giữ chỗ khác nhau [dòng 2–4]. Sau đó, chúng tôi gán giá trị cho các trình giữ chỗ đó và thực hiện câu lệnh. Để gửi một bộ dữ liệu khác, chỉ cần thay đổi giá trị của các biến đó và thực hiện lại câu lệnh

Điều này có vẻ hơi khó sử dụng đối với các câu lệnh có nhiều tham số? . Tuy nhiên, nếu dữ liệu của bạn được lưu trữ trong một mảng, thì có một lối tắt dễ dàng

try {
2______1319
try {
6
try {
321
try {
8
try {
31______20
try {
99
try {
30
try {
327

thật dễ dàng

Dữ liệu trong mảng áp dụng cho các trình giữ chỗ theo thứ tự.

try {
35 đi vào trình giữ chỗ đầu tiên, 
try {
36 thứ hai, v.v. Tuy nhiên, nếu các chỉ mục mảng của bạn không theo thứ tự, điều này sẽ không hoạt động bình thường và bạn sẽ cần lập chỉ mục lại mảng

Trình giữ chỗ được đặt tên

Bạn có thể đoán cú pháp, nhưng đây là một ví dụ

try {
2______1329
try {
6
try {
331
try {
8
try {
333

Bạn cũng có thể sử dụng một phím tắt ở đây, nhưng nó hoạt động với các mảng kết hợp. Đây là một ví dụ

try {
2______1319
try {
6
try {
337
try {
8
try {
31
try {
0
try {
341
try {
30
try {
343
try {
32
try {
327

Các khóa của mảng của bạn không cần bắt đầu bằng dấu hai chấm, nhưng nếu không thì cần phải khớp với các phần giữ chỗ đã đặt tên. Nếu bạn có một mảng các mảng, bạn có thể lặp lại chúng và chỉ cần gọi

try {
37 với từng mảng dữ liệu

Một tính năng thú vị khác của trình giữ chỗ được đặt tên là khả năng chèn các đối tượng trực tiếp vào cơ sở dữ liệu của bạn, giả sử các thuộc tính khớp với các trường được đặt tên. Đây là một đối tượng ví dụ và cách bạn thực hiện thao tác chèn của mình

try {
2
try {
347
try {
6
try {
349
try {
8
try {
351
try {
0
try {
353
try {
30
try {
355
try {
32
try {
31
try {
34
try {
359
try {
36
try {
361
try {
38
try {
363
try {
20
try {
365
try {
22
try {
367
try {
24
try {
369
try {
26
try {
23
try {
28
try {
31
try {
314
try {
375
try {
316
try {
31
try {
378
try {
379
try {
380
try {
343
try {
382
try {
383

Truyền đối tượng thành một mảng trong

try {
37 có nghĩa là các thuộc tính được coi là khóa mảng

Chọn dữ liệu

Dữ liệu được lấy qua 

try {
39, một phương thức xử lý câu lệnh của bạn. Trước khi gọi tìm nạp, tốt nhất là cho PDO biết bạn muốn dữ liệu được tìm nạp như thế nào. Bạn có các tùy chọn sau

  • try {
    
    40. trả về một mảng được lập chỉ mục theo tên cột
  • try {
    
    41 [mặc định]. trả về một mảng được lập chỉ mục bởi cả tên và số cột
  • try {
    
    42. gán giá trị của các cột cho các biến được đặt bằng phương thức 
    try {
    
    43 
  • try {
    
    44. gán các giá trị của các cột của bạn cho các thuộc tính của lớp được đặt tên. Nó sẽ tạo các thuộc tính nếu các thuộc tính phù hợp không tồn tại
  • try {
    
    45. cập nhật một phiên bản hiện có của lớp được đặt tên
  • try {
    
    46. kết hợp 
    try {
    
    41/
    try {
    
    48, tạo tên biến đối tượng khi chúng được sử dụng
  • try {
    
    49. trả về một mảng được lập chỉ mục theo số cột
  • try {
    
    48. trả về một đối tượng ẩn danh có tên thuộc tính tương ứng với tên cột

Trong thực tế, có ba sẽ bao gồm hầu hết các tình huống.

try {
51, 
try {
52, và 
try {
53. Để đặt phương thức tìm nạp, cú pháp sau được sử dụng

try {
2____1385

Bạn cũng có thể đặt loại tìm nạp trực tiếp trong lệnh gọi phương thức 

try {
39 

try {
51

Kiểu tìm nạp này tạo một mảng kết hợp, được lập chỉ mục theo tên cột. Điều này chắc hẳn khá quen thuộc với những ai đã sử dụng tiện ích mở rộng mysql/mysqli. Đây là một ví dụ về việc chọn dữ liệu với phương pháp này

try {
2______1387
try {
6
try {
389
try {
8
try {
391
try {
0
try {
31
try {
30
try {
395
try {
32
try {
385
try {
34
try {
31
try {
36
try {
201
try {
38
try {
203
try {
20
try {
205
try {
22
try {
207
try {
24
try {
23

Vòng lặp while sẽ tiếp tục đi qua từng hàng một của tập kết quả cho đến khi hoàn tất

try {
53

Loại tìm nạp này tạo một đối tượng của lớp tiêu chuẩn cho mỗi hàng dữ liệu được tìm nạp. Đây là một ví dụ

try {
2______1211
try {
6
try {
391
try {
8
try {
31
try {
0
try {
395
try {
30
try {
219
try {
32
try {
31
try {
34
try {
223
try {
36
try {
201
try {
38
try {
227
try {
20
try {
229
try {
22
try {
231
try {
24
try {
23

try {
52

Các thuộc tính của đối tượng của bạn được đặt TRƯỚC KHI hàm tạo được gọi. Cái này quan trọng

Phương thức tìm nạp này cho phép bạn tìm nạp dữ liệu trực tiếp vào một lớp bạn chọn. Khi bạn sử dụng

try {
52, các thuộc tính của đối tượng của bạn được đặt
try {
59 hàm tạo được gọi. Đọc nó một lần nữa-nó quan trọng. Nếu các thuộc tính khớp với tên cột không tồn tại, các thuộc tính đó sẽ được tạo [dưới dạng công khai] cho bạn

Điều này có nghĩa là nếu dữ liệu của bạn cần bất kỳ sự chuyển đổi nào sau khi nó ra khỏi cơ sở dữ liệu, nó có thể được thực hiện tự động bởi đối tượng của bạn khi mỗi đối tượng được tạo

Ví dụ, hãy tưởng tượng một tình huống trong đó địa chỉ cần được che khuất một phần cho mỗi bản ghi. Chúng ta có thể làm điều này bằng cách thao tác trên thuộc tính đó trong hàm tạo. Đây là một ví dụ

try {
2
try {
235
try {
6
try {
351
try {
8
try {
353
try {
0
try {
355
try {
30
try {
243
try {
32
try {
31
try {
34
try {
247
try {
36
try {
249
try {
38
try {
251
try {
20
try {
367
try {
22
try {
23

Khi dữ liệu được tìm nạp vào lớp này, địa chỉ có tất cả các chữ cái a-z viết thường được thay thế bằng chữ cái x. Bây giờ, việc sử dụng lớp và việc biến đổi dữ liệu xảy ra là hoàn toàn minh bạch

try {
2______1391
try {
6
try {
259
try {
8
try {
31
try {
0
try {
263
try {
30
try {
265
try {
32
try {
23

Nếu địa chỉ là '5 Rosebud', bạn sẽ thấy '5 Rxxxxxx' là đầu ra của mình. Tất nhiên, có thể có những tình huống mà bạn muốn hàm tạo được gọi trước khi dữ liệu được gán. PDO cũng bảo vệ bạn cho việc này

try {
2____1269

Bây giờ, khi bạn lặp lại ví dụ trước với chế độ tìm nạp này [

try {
60], địa chỉ sẽ không bị che khuất vì hàm tạo đã được gọi và các thuộc tính đã được gán

Cuối cùng, nếu bạn thực sự cần, bạn có thể truyền đối số cho hàm tạo khi tìm nạp dữ liệu vào đối tượng bằng PDO

try {
2____1271

Nếu bạn cần truyền dữ liệu khác nhau cho hàm tạo cho từng đối tượng, bạn có thể đặt chế độ tìm nạp bên trong phương thức

try {
61

try {
2______1273
try {
6
try {
275
try {
8
try {
277
try {
0
try {
279
try {
30
try {
23

Một số phương pháp hữu ích khác

Mặc dù điều này không có nghĩa là bao gồm mọi thứ trong PDO [đó là một phần mở rộng lớn. ], có một số phương pháp khác mà bạn sẽ muốn biết để thực hiện những thao tác cơ bản với PDO

try {
2____1283

Phương thức 

try {
62 luôn được gọi trên phần xử lý cơ sở dữ liệu, không phải phần xử lý câu lệnh và sẽ trả về id tăng tự động của hàng được chèn cuối cùng bởi kết nối đó

try {
2____1285____16
try {
287

Phương thức 

try {
63 được sử dụng cho các thao tác không thể trả về dữ liệu ngoài các hàng bị ảnh hưởng. Trên đây là hai ví dụ về việc sử dụng phương thức exec

try {
2____1289

Phương thức 

try {
64 trích dẫn các chuỗi để chúng an toàn khi sử dụng trong các truy vấn. Đây là dự phòng của bạn nếu bạn không sử dụng câu lệnh đã chuẩn bị

try {
2____1291

Phương thức 

try {
65 trả về một số nguyên cho biết số hàng bị ảnh hưởng bởi một thao tác. Trong ít nhất một phiên bản PDO đã biết, phương pháp này không hoạt động với các câu lệnh được chọn. Tuy nhiên, nó hoạt động bình thường trong phiên bản PHP 5. 1. 6 trở lên

Nếu bạn gặp sự cố này và không thể nâng cấp PHP, bạn có thể lấy số lượng hàng như sau

try {
2______1293
try {
6
try {
295
try {
8
try {
297
try {
0
try {
299
try {
30
try {
31
try {
32
try {
03
try {
34
try {
367
try {
36
try {
07
try {
38
try {
09
try {
20
try {
367
try {
22
try {
23

Trình tạo PHP CRUD từ CodeCanyon

Bạn có thể tiết kiệm hàng giờ cho mình bằng cách tìm một từ CodeCanyon và sử dụng nó trong các dự án của bạn. Dưới đây là năm trong số các bản tải xuống phổ biến nhất mà bạn có thể bắt đầu sử dụng ngay bây giờ

1. Ứng dụng đa mục đích của Laravel. Ximo 6

Trình tạo Sximo 6 dựa trên các khung phổ biến nhất xung quanh. Nó cũng đã nhận được bản cập nhật mới cho năm 2021, giúp nó dễ sử dụng và giàu tính năng nhất có thể. Một số tính năng đó bao gồm

  • quản lý bảng cơ sở dữ liệu
  • mẫu front-end và back-end
  • trình soạn thảo mô-đun MySQL
  • nhiều hình ảnh và hỗ trợ tải lên tập tin

Hãy dùng thử nếu bạn đang muốn tiết kiệm thời gian với mẫu CRUD PHP

2. PDO thô. Trình tạo biểu mẫu & Quản lý cơ sở dữ liệu

Đây là một trình tạo CRUD PHP mạnh mẽ khác. Mẫu mã PDO PHP này quản lý cơ sở dữ liệu tốt. Nhưng đó không phải là tất cả. Bạn cũng có thể sử dụng PDO CRUD để xây dựng các biểu mẫu hữu ích trực tiếp từ các bảng cơ sở dữ liệu của mình. Đó là một tính năng hữu ích mà không nhiều tùy chọn khác có

3. Cicool. Trình tạo Trang, Biểu mẫu, Phần còn lại và Trình tạo CRUD

Cicool là một công cụ xây dựng đa năng khác đáng để xem xét. Nó không chỉ cung cấp trình tạo CRUD mà còn có một

  • trình tạo trang
  • Trình tạo Mẫu
  • phần còn lại trình tạo API

Ngoài các tính năng này, bạn cũng có thể thêm các tiện ích mở rộng cho Cicool và dễ dàng tùy chỉnh chủ đề của nó

4. Trình tạo PHP CRUD

Trình tạo bảng quản trị dễ dàng? . Giao diện dễ điều hướng? . Phân tích cơ sở dữ liệu chuyên sâu? . Trình tạo PHP CRUD này có mọi thứ bạn cần để tạo bảng điều khiển tuyệt vời và lưu trữ dữ liệu của bạn. Với các tính năng quản lý quyền và xác thực người dùng khác nhau, mẫu PDO PHP này đáng để kiểm tra

Phần kết luận

Tôi hy vọng điều này sẽ giúp bạn di chuyển khỏi tiện ích mở rộng

try {
14 và 
try {
15. Bạn nghĩ sao?

Nếu bạn muốn tạo giao diện CRUD nhanh bằng PHP và PDO, hãy xem các bài đăng sau

PHP trong cơ sở dữ liệu là gì?

PHP là ngôn ngữ kịch bản nhúng HTML phía máy chủ có thể được sử dụng để tạo các trang Web động . Nó có sẵn cho hầu hết các hệ điều hành và máy chủ Web và có thể truy cập hầu hết các cơ sở dữ liệu phổ biến, bao gồm cả MySQL. PHP có thể được chạy như một chương trình riêng biệt hoặc được biên dịch thành một mô-đun để sử dụng với máy chủ Web.

Tại sao nên sử dụng PHP và MySQL?

PHP là ngôn ngữ kịch bản phổ biến nhất để phát triển web . Nó miễn phí, mã nguồn mở và phía máy chủ [mã được thực thi trên máy chủ]. MySQL là Hệ thống quản lý cơ sở dữ liệu quan hệ [RDBMS] sử dụng Ngôn ngữ truy vấn có cấu trúc [SQL]. Nó cũng miễn phí và mã nguồn mở.

Chúng ta có thể sử dụng PHP cho cơ sở dữ liệu không?

Với PHP, bạn có thể kết nối và thao tác với cơ sở dữ liệu . MySQL là hệ thống cơ sở dữ liệu phổ biến nhất được sử dụng với PHP.

Chủ Đề