Kết nối database PHP
Kết nối PHP với MySQL, với phiên bản PHP 5 và các cao hơn có thể làm việc với một cơ sở dữ liệu MySQL bằng cách sử dụng: Show
Các phiên bản trước của PHP đã sử dụng phần mở rộng MySQL. Tuy nhiên, tiện ích mở rộng này đã không được dùng nữa vào năm 2012. Nội dung chính
Có nên sử dụng MySQLi hoặc PDO không?Cả MySQLi và PDO đều có ưu điểm: PDO làm việc trên 12 hệ thống cơ sở dữ liệu khác nhau, trong khi MySQLi chỉ làm việc với cơ sở dữ liệu MySQL. Vì vậy, nếu bạn phải chuyển đổi dự án để sử dụng một cơ sở dữ liệu khác, bạn nên sử dụng PDO. Bạn chỉ phải thay đổi thông tin 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ộ code - bao gồm các truy vấn. Cả hai đều hướng đối tượng, nhưng MySQLi cũng cung cấp một API thủ tục. Cả hai hỗ trợ PreparedStatements. Các câu lệnh PreparedStatements được bảo vệ khỏi việc SQL injection và rất quan trọng đối với bảo mật ứng dụng web. Ví dụ về MySQL trong cả hai định dạng MySQLi và PDOBài này và các bài sau, chúng ta tìm hiểu về ba cách làm việc với PHP và MySQL:
Cài đặt MySQLiĐối với Linux và Windows: Phần mở rộng MySQLi được cài đặt tự động, khi gói mysql 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 PHP kết nối với MySQLTrước khi chúng ta có thể truy cập dữ liệu trong cơ sở dữ liệu MySQL, chúng ta cần phải mở một kết nối với máy chủ: Ví dụ (MySQLi hướng đối tượng) connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully"; ?> PHP là một ngôn ngữ tuyệt vời và phổ biến! Lưu ý về ví dụ hướng đối tượng ở trên: $connect_error bị lỗi đối vơi bản PHP 5.2.9 và 5.3.0 trở về trước. 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 code sau thay vào đó: // kiểm tra kết nối if (mysqli_connect_error()) { die("Database connection failed: " . mysqli_connect_error()); } Ví dụ (MySQLi hướng thủ tục) Ví dụ (PDO) setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected successfully"; } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); } ?> Lưu ý rằng trong ví dụ PDO ở trên chúng ta cũng đã chỉ định một cơ sở dữ liệu (myDB). PDO yêu cầu một cơ sở dữ liệu hợp lệ để kết nối. Nếu không có cơ sở dữ liệu được chỉ định, một ngoại lệ được ném. 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ỳ vấn đề nào có thể xảy ra trong các truy vấn cơ sở dữ liệu của chúng ta. Nếu một ngoại lệ được ném vào trong khối try {}, script sẽ dừng thực hiện và chuyển trực tiếp đến khối catch () {} đầu tiên. Mở đầu cho series học PHP và MySql, bài này chúng ta sẽ tìm hiểu về các cách cách kết nối PHP với MySql. Nhìn chung thì PHP có hỗ trợ cho chúng ta 3 phương thức kết nối đến Mysql nhưng trong đó có một phương thức không hỗ trợ nữa nên mình sẽ chỉ giới thiệu hai phương thức còn lại thôi. 1, Chuẩn bị.-Để có thể kết nối được PHP với MySql thì các bạn cần phải biết được các thông số trên SQL như:
-Đồng thời bên phía PHP thì các bạn cũng cần cài đặt các gói hỗ trợ kết nối PHP với MySql (mặc định thì PHP cũng đã tích hợp sẵn). 2, Kết nối PHP với MySql bằng mysqli.-Đầu tiên chúng ta phải kể đến mysqli là gì? thì ở đây mysqli là viết tắt của cụm từ mysql improved (cải tiến), nó là một thư viện giúp PHP có thể kết nối được với MySql hỗ trợ từ PHP5 trở đi. mysqli hướng thủ tục-Để kết nối PHP với MySql bằng phương thức này thì chúng ta dùng hàm mysqli_connect() với cú pháp như sau:
(Các thông số trên các bạn xem ở trên nhé) VD:
mysqli hướng đối tượng-Đối với phương thức này các bạn chỉ cần khởi tạo class mysqli với cú pháp như sau:
(Các thông số trên các bạn xem ở trên nhé) VD:
3, Kết nối PHP với MySql bằng PDO.-Ở đây PDO là viết tắt của chữ PHP Data Object, với gói này bạn có thể kết nối PHP đến rất nhiều các database khác như Oracel,postpreSQL,... -Để kết nối PHP với MySql bằng PDO các bạn chỉ cần khởi tạo class PDO với cú pháp:
Trong đó: dsn chứa các thông tin như database drive,hostname,databasename còn option chứa các thông số tùy chỉnh(nói sau). VD:
4, Ngắt kết nối.-Để ngắt kết nối PHP với MySql các bạn sử dụng một trong các cách sau (chú ý kết nối theo cách nào thì hủy theo cách đó). mysqli hướng thủ tục-Để hủy kết nối với phương thức này thì các bạn dùng hàm 0 với cú pháp
-Với connect là biến khởi tạo kết nối. VD: Hủy kết nối với VD phần trên
mysqli hướng đối tượng-Đê hủy kết nối với cách này thì các bạn chỉ cần gọi phương thức 1VD: Hủy kết nối với VD phần trên
PDO-Để hủy kết nối bằng cách này thì các bạn chỉ cần set biến khởi tạo về null. VD: Hủy kết nối với VD phần trên
5, Nên dùng phương thức nào.- Có lẽ mình không nên nói nhiều ở phần này mà cho các bạn xem bảng sau rồi các bạn tự đưa ra kết luận nhé! #PDOMySQLiHỗ trợ kết nối12 databaseMySQLAPIOOPOOP + proceduralKết nốiĐơn giảnĐơn giảnNamed parameters (cái này không biết dịch như nào cho đúng à)YesNoObject mappingYesYesPrepared statements(client side)YesNoPerformance(tối ưu)FastFastStored procedures (cái này đọc trong series mysql)YesYes 6, Lời kết.-Ở trên mình đã giới thiệu với các bạn cách kết nối PHP với MySql bằng các cách mà PHP hiện đang hỗ trợ, ngoài ra nó còn hỗ trợ phương thức mysql nữa nhưng ở PHP7 đã không còn hỗ trợ nữa nên mình không nhắc đến ở đây. |