Tôi nên học pdo hay mysqli?

Cơ sở dữ liệu, ứng dụng web sẽ ra sao nếu không có chúng, đặc biệt khi bạn đang làm việc với PHP. OK, đó không phải là một tuyên bố hoàn toàn công bằng, vì có rất nhiều nguồn dữ liệu sẵn có cho các ứng dụng hiện đại

Có các tệp phẳng, như tệp CSV hoặc tệp văn bản. Có cơ sở dữ liệu, như MySQL, PostgreSQL, Oracle, Firebase, Sybase và MS SQLServer. Sau đó, có các nguồn dữ liệu NoSQL mới hơn, bao gồm Hadoop, Redis, Cassandra và MongoDb, trong số một loạt các tùy chọn khác. Nhưng hôm nay tôi muốn xem xét câu hỏi về cơ sở dữ liệu

Nếu bạn đã biết về PHP một thời gian thì bạn sẽ biết rằng ngay từ những ngày đầu tiên PHP đã có hiệu lực được kết hợp với MySQL vì bản phân phối mặc định đi kèm với trình điều khiển MySQL. Tuy nhiên, khi thời gian trôi qua, tiện ích mở rộng này bắt đầu có dấu hiệu cũ và không được dùng nữa để thay thế cho MySQLi [i để cải thiện]

Nhưng sau đó, PHP tiếp tục phát triển với tốc độ rất nhanh và trở thành [tùy thuộc vào quan điểm của bạn] nhận biết hoàn toàn về cơ sở dữ liệu hoặc không phụ thuộc vào cơ sở dữ liệu với sự xuất hiện của tiện ích mở rộng PDO [Đối tượng dữ liệu PHP] đặc biệt. Vì vậy, trong bài đăng này, tôi muốn xem xét lý do tại sao bạn nên xem xét chuyển từ MySQLi sang PDO trong các ứng dụng PHP của mình

PDO là gì?

Nếu bạn chưa quen với PDO hoặc đây là lần đầu tiên bạn nghe về nó, thì đây là định nghĩa từ hướng dẫn sử dụng PHP

Tiện ích mở rộng Đối tượng dữ liệu PHP [PDO] xác định giao diện nhẹ, nhất quán để truy cập cơ sở dữ liệu trong PHP. Mỗi trình điều khiển cơ sở dữ liệu triển khai giao diện PDO có thể hiển thị các tính năng dành riêng cho cơ sở dữ liệu dưới dạng các chức năng mở rộng thông thường

PDO cung cấp một lớp trừu tượng truy cập dữ liệu, có nghĩa là, bất kể bạn đang sử dụng cơ sở dữ liệu nào, bạn đều sử dụng các chức năng giống nhau để đưa ra các truy vấn và tìm nạp dữ liệu. PDO không cung cấp sự trừu tượng hóa cơ sở dữ liệu; . Bạn nên sử dụng lớp trừu tượng toàn diện nếu bạn cần cơ sở đó

Hy vọng rằng từ hai đoạn văn này, bạn có thể bắt đầu hiểu tại sao PDO lại là tương lai và tại sao, theo thời gian, tiện ích mở rộng MySQLi có thể đi theo con đường của tiện ích mở rộng MySQL. Tự hỏi mình đi. Tại sao lại sử dụng tiện ích mở rộng dành riêng cho nhà cung cấp khi bạn có thể sử dụng tiện ích mở rộng hỗ trợ nhiều nhà cung cấp?

Tôi không muốn có vẻ như tôi đang phá hỏng tiện ích mở rộng MySQLi. Đó là một thư viện tốt cung cấp nhiều chức năng và đã được thử nghiệm tốt. Tuy nhiên, PDO có một số tính năng làm cho nó khác biệt, những tính năng có thể rất đáng để bạn cân nhắc. Cụ thể, tôi đề xuất ba điều sau

  • sự linh hoạt của nhà cung cấp
  • Giảm đường cong học tập
  • tham số được đặt tên

Hãy xem xét từng thứ trong số này

Tính linh hoạt của nhà cung cấp

Trong nhiều năm, câu thần chú về khả năng thay đổi nhà cung cấp cơ sở dữ liệu, không bị khóa vào bất kỳ nhà cung cấp cụ thể nào, đã được quảng cáo là yêu cầu chính đối với các ứng dụng chuyên nghiệp, thậm chí còn được coi là viên đạn bạc an toàn thực sự. Nhưng trên thực tế, một khi đã được chọn, các ứng dụng có thường xuyên thay đổi nhà cung cấp không?

Tuy nhiên, nếu có nhu cầu, thật tuyệt khi biết rằng bạn có thể làm được mà không gặp nhiều rắc rối. PDO, hơn bất kỳ tiện ích mở rộng nào khác, cung cấp lộ trình thực hiện thay đổi ngắn hơn nhiều, vì nó hỗ trợ 12 nhà cung cấp cơ sở dữ liệu, bao gồm

  • PostgreSQL
  • SQLite
  • mysql
  • tiên tri
  • ODBC
  • Máy chủ MS SQL & Azure
  • con chim lửa
  • Informix
  • DB2 của IBM
  • Sybase
  • con nít
  • 4D

Đó là một danh sách ấn tượng các cơ sở dữ liệu được hỗ trợ ngay lập tức. Tính linh hoạt này thậm chí còn phù hợp hơn nếu ứng dụng của bạn hỗ trợ nhiều nhà cung cấp, ngay từ đầu. Chắc chắn, bạn phải xem xét SQL mà bạn đang viết và nó có thể di động trên từng cơ sở dữ liệu hay được viết theo cách nó chỉ tận dụng các tính năng dành riêng cho cơ sở dữ liệu khi nó có thể làm như vậy

Nhưng tùy thuộc vào thiết lập của bạn, nếu bạn muốn thay đổi từ nhà cung cấp này sang nhà cung cấp khác, tùy thuộc vào SQL của bạn, tất cả những gì có thể được yêu cầu là thay đổi DSN [tên nguồn dữ liệu]

Giảm đường cong học tập

Bây giờ, hãy xem xét đường cong học tập giảm, khi một tiện ích mở rộng sẽ hỗ trợ nhiều nhà cung cấp cơ sở dữ liệu. Khi bạn hoặc nhóm của bạn chỉ phải học một thư viện thay vì nhiều thư viện, bạn có thể đạt được cả sự thông thạo và thành thạo sớm hơn rất nhiều. Bạn không cần phải học nhiều thư viện. Khi bạn đã thành thạo một cái, bạn đã hoàn thành

Chắc chắn, đó là một điều dễ dàng để nói về lý thuyết, nhưng trong thực tế, nó sẽ mất thời gian. Tuy nhiên, bằng cách giảm tải giáo dục, bạn giảm đầu tư tổng thể cần thiết. Điều duy nhất bạn cần biết là triển khai SQL của nhà cung cấp và các công cụ kiểm tra truy vấn của họ. Nhưng đây là trường hợp bất kể bạn đang làm việc với nhà cung cấp nào

Tôi không nghĩ có thể nói quá về việc bằng cách đầu tư vào một thư viện thay vì nhiều thư viện, một loạt lợi ích sẽ hiện hữu như thế nào. Bao gồm các

  • Giảm thời gian để làm chủ thư viện
  • Giảm yêu cầu bảo trì
  • Giảm điểm tiềm năng của sự thất bại và lỗi

Đây là một tập hợp các lợi ích đơn giản, được cấp. Nhưng họ bắt đầu gợi ý về khoản đầu tư giảm cần thiết khi thành thạo một thư viện chung, thay vì thứ gì đó dành riêng cho nhà cung cấp. Điều đáng chú ý là mặc dù PDO là một thư viện chung, nhưng nó không nhẹ hoặc thiếu. Nó mạnh mẽ từng chút một, trong nhiều trường hợp còn mạnh hơn các thư viện cụ thể của nhà cung cấp

Ghi chú. PDO không làm mọi thứ mà MySQLi làm. Vì vậy, nếu bạn đang cân nhắc việc chuyển đổi, nếu bạn bị ràng buộc chặt chẽ với MySQL, sử dụng các tính năng cụ thể mà cơ sở dữ liệu khác không cung cấp hoặc PDO không sẵn sàng cung cấp, vui lòng xem xét việc chuyển đổi một cách cẩn thận

Tham số được đặt tên

Có, MySQLi có trình giữ chỗ, nhưng nó không có tham số được đặt tên. Không chắc chắn về sự khác biệt?

php

Chủ Đề