Hướng đối tượng mysqli so với thủ tục mysqli so với pdo
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 Show
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à PDOTrong 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
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 MySQLTrướ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"; // Tạo kết nối // Kiểm tra kết nối 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 Ví dụ (Thủ tục MySQLi)$servername = "localhost"; // Tạo kết nối // Kiểm tra kết nối Ví dụ (PDO)$servername = "localhost"; thử { 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ốiKế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 Kết nối với cơ sở dữ liệu và tương tác với dữ liệu của nó là một trong những tính năng chính của trang web động PHP. Nhà phát triển muốn tạo một hệ thống quản lý thông tin với MySQL có ba lựa chọn chính về việc sử dụng phần mở rộng PHP nào Các hàm MySQL, MySQLi, PDO. chọn thư viện nào?chức năng MySQLKhả năng đầu tiên, có sẵn kể từ phiên bản PHP 2. 0 là phần mở rộng MySQL gốc. Nó cung cấp nhiều chức năng, nhưng không được dùng nữa kể từ PHP 5. 5 và không còn được cung cấp kể từ phiên bản 7. Nó cho phép một cách tiếp cận lập trình thủ tục độc quyền, do đó nó không có giao diện lập trình hướng đối tượng riêng. Hiện tại, cộng đồng PHP không đề xuất công nghệ này cho các dự án mới. Những lý do chính là thiếu hỗ trợ OOP và thực tế là nó không cho phép truy cập vào một số kỹ thuật đặc biệt hữu ích. Ví dụ: nó không cho phép sử dụng các câu lệnh đã chuẩn bị và các thủ tục được lưu trữ MySQLiKhả năng thứ hai, có sẵn từ PHP 5. 0, là phần mở rộng MySQLi (MySQL được cải thiện). Nó hỗ trợ cách tiếp cận Hướng đối tượng, ngay cả khi nó vẫn cho phép cách tiếp cận theo thủ tục. Nó bao gồm cả API (Giao diện lập trình ứng dụng) cho các câu lệnh đã chuẩn bị và các thủ tục được lưu trữ cũng như cho nhiều truy vấn và giao dịch PDOKhả năng thứ ba là phần mở rộng Đối tượng dữ liệu PHP (PDO). Cái này hoàn toàn hướng đối tượng. Vì vậy, nó không hỗ trợ cách tiếp cận theo thủ tục. Sự khác biệt chính với MySQLi là sự hiện diện của trình điều khiển cho các DBMS khác nhau, không dành riêng cho MySQL. Điều này có nghĩa là ngay cả khi ứng dụng của chúng tôi được sinh ra để giao tiếp với MySQL, chúng tôi có thể dễ dàng điều chỉnh nó với các cơ sở dữ liệu khác với rất ít biến thể trong mã. Cụ thể, trình điều khiển có sẵn cho DBMS sau. Cubrid, Microsoft SQL Server, Firebird, IBM DB2, Informix Dynamic Server, MySQL, Oracle, ODBC và DB2, PostgreSQL, SQLite, 4D. Về cơ bản, PDO cung cấp một mức độ trừu tượng để tương tác với cơ sở dữ liệu So sánh giữa MySQLi và PDOSự lựa chọn giữa MySQLi và PDO có thể bao gồm một số yếu tố và thường chỉ do sở thích cú pháp Tuy nhiên, trong một số trường hợp, sự lựa chọn rất dễ thực hiện. Ví dụ: nếu ứng dụng của chúng tôi phải tương thích với các DBMS khác nhau, PDO sẽ trở thành lựa chọn bắt buộc. Đây cũng là lý do chính tại sao khung phát triển PHP phổ biến nhất lại chọn PDO (i. e Zend, Symfony, Laravel và Yii). Một ưu điểm khác của PDO là nó cung cấp khả năng gán tên cho các tham số được sử dụng trong các câu lệnh đã chuẩn bị. Vì vậy, điều này tránh nhu cầu sử dụng hình thức MySQLi phức tạp hơn, yêu cầu trình giữ chỗ Việc so sánh giữa hai giải pháp đã gây ra nhiều cuộc thảo luận giữa các lập trình viên. Mặc dù, hiện tại, PDO là tiêu chuẩn tham khảo. Nó có một số nhược điểm, chẳng hạn như hiệu suất kém hơn một chút so với MySQLi. Ngoài ra, nó không cung cấp quyền truy cập trực tiếp vào một số tính năng của các phiên bản MySQL mới nhất, chẳng hạn như nhiều câu lệnh Vì vậy, chúng tôi sẽ hiển thị cả hai thư viện, bắt đầu từ MySQLi. Và chúng ta sẽ cùng họ nhận ra những tác vụ phổ biến nhất của một ứng dụng Web. Ví dụ: kết nối cơ sở dữ liệu, thao tác đọc và ghi và quản lý dữ liệu thông qua các biểu mẫu Để làm theo hướng dẫn này, bạn sẽ cần có kiến thức cơ bản về PHP, MySQL và lập trình hướng đối tượng Sự khác biệt giữa MySQLi và PDO là gì?Như đã nêu trước đó, cả PDO và MySQLi đều cực kỳ giống nhau, nhưng có một số khác biệt nhỏ về cú pháp. MySQLi tuân theo quy ước solid_case truyền thống của PHP, trong khi PDO sử dụng camelCase . Ngoài ra, các phương thức của MySQLi được sử dụng làm thuộc tính đối tượng, trong khi PDO sử dụng cú pháp truyền thống cho các hàm.
Là đối tượng PDOPDO hướng đối tượng
.
Là đối tượng MySQLiTiện ích mở rộng mysqli có giao diện kép. Nó hỗ trợ mô hình lập trình hướng đối tượng và thủ tục . Người dùng di chuyển từ tiện ích mở rộng mysql cũ có thể thích giao diện thủ tục hơn. Giao diện thủ tục tương tự như giao diện của tiện ích mở rộng mysql cũ.
Lợi thế của PDO hoặc MySQLi là gì?Cả PDO và MySQLi đều có những ưu điểm riêng. Như chúng ta đã thấy trước đó rằng PDO hoạt động trên 12 hệ thống cơ sở dữ liệu khác nhau , trong khi MySQL chỉ có thể hoạt động với cơ sở dữ liệu MySQL. Vì vậy, nếu chúng tôi muốn chuyển dự án của mình sang cơ sở dữ liệu khác, PDO sẽ giúp bạn dễ dàng. Trong MySQLi, chúng tôi phải viết lại toàn bộ mã. |