MySQL là tùy chọn nguồn mở phổ biến nhất cho Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS). Nó tuân thủ các tiêu chuẩn SQL và cung cấp các chức năng RDBMS phổ biến như trình kích hoạt, tham gia và dạng xem Show
Và đối với các nhà phát triển đã quen thuộc với các giải pháp RDBMS như Db2 và Oracle, MySQL cũng rất dễ học. MariaDB là một nhánh của MySQL. Bạn cũng có thể sử dụng thông tin là blog này để kết nối MariaDB với PHP. Tại sao kết nối PHP với MySQL?Mục đích của nhiều giải pháp PHP là cung cấp quyền truy cập dựa trên web vào nội dung động được lưu trữ trong cơ sở dữ liệu. PHP hỗ trợ nhiều hệ thống quản lý cơ sở dữ liệu bao gồm MySQL, MariaDB, Db2, MongoDB, Oracle, PostgreSQL và SQLite Cách kết nối PHP với cơ sở dữ liệu MySQLDưới đây là hai bước để kết nối PHP với cơ sở dữ liệu MySQL 1. Sử dụng tiện ích mở rộng để kết nối cơ sở dữ liệu MySQL trong PHPPHP cung cấp ba phần mở rộng mà bạn có thể sử dụng để
Ba phần mở rộng mà PHP cung cấp để kết nối với MySQL bao gồm mysqli, mysqlInd và pdo_mysql tiện ích mở rộng mysqlimysqli trong php hỗ trợ MySQL 4. 1 và mới hơn. Mysqli còn được gọi là MySQL cải tiến Tiện ích mở rộng mysqlndThường được gọi là Trình điều khiển bản địa MySQL, MysqlInd cung cấp cơ sở hạ tầng gốc PHP cho tất cả các tiện ích mở rộng MySQL và là sự thay thế thả xuống cho libmysqlclient. Điều quan trọng cần lưu ý là mysqlnd không cung cấp API. Đọc tài liệu để biết thêm thông tin Phần mở rộng pdo_mysqlpdo_mysql cung cấp giao diện Đối tượng dữ liệu PHP (PDO) cho cơ sở dữ liệu MySQL, lớp trừu tượng truy cập dữ liệu 2. Thêm các câu lệnh SQL vào các hàm PHPBằng cách sử dụng các phần mở rộng MySQL trong các tập lệnh PHP, bạn có thể thêm các câu lệnh SQL sau vào các hàm CRUD của PHP để hoạt động với các bản ghi cơ sở dữ liệu MySQL
Để chỉ định bản ghi nào sẽ được tham gia, bạn có thể sử dụng mệnh đề WHERE. Thông thường, các giá trị mà câu lệnh SQL cần sẽ đến từ các giá trị dạng web và được biểu diễn dưới dạng các biến trong tập lệnh PHP. Tập lệnh mẫu để kết nối cơ sở dữ liệu MySQL và tạo truy vấn MySQL trong PHPĐây là một ví dụ đơn giản về tập lệnh PHP sử dụng lệnh gọi được cung cấp bởi tiện ích mở rộng mysqli để chọn bản ghi từ cơ sở dữ liệu MySQL Hãy nhớ rằng DBMS sẽ thực thi các ràng buộc tương tự đối với các câu lệnh SQL được thực thi thông qua PHP giống như bất kỳ giao diện nào khác vào cơ sở dữ liệu. Nỗ lực CHÈN các bản ghi có khóa trùng lặp sẽ bị từ chối. Mã phù hợp phải bao gồm các bài kiểm tra tình trạng lỗi trên kết nối cơ sở dữ liệu (hiển thị ở trên) cũng như thực thi truy vấn. Ví dụ: đoạn mã sau có thể đã được chèn sau lệnh gọi 'mysqli_connect' để xác thực rằng đã có được kết nối thành công giữa PHP và MySQL (xem thêm về Cách kiểm tra kết nối MySQL của bạn tại đây)
Tương tự, lệnh gọi 'mysqli_query' có thể được kiểm tra để trả về hợp lệ và nếu không, lệnh gọi 'mysqli_error()' có thể được sử dụng để xuất lỗi cụ thể. 'mysqli_error()' trả về một chuỗi mô tả lỗi cuối cùng trong khi 'mysql_errorno()' trả về số lỗi MySQL từ PHP. Bảo vệBạn cần đặt tính bảo mật lên hàng đầu trong cả thiết kế cũng như triển khai ứng dụng Một cách để đảm bảo an toàn dữ liệu là thông qua tiện ích mở rộng 'bộ lọc' được cung cấp cho PHP, tiện ích này cung cấp một số loại bộ lọc bao gồm 'xác thực' và 'khử trùng' tiêm SQLSQL injection đúng như tên gọi của nó, nó đưa dữ liệu/câu lệnh vào một câu lệnh SQL. Hãy xem xét câu lệnh SQL INSERT sau đây
Giả sử thêm rằng giá trị của $name đến từ một dạng web (có thể là giả định lưu vì đây có thể là một ứng dụng PHP. Nếu không vệ sinh đúng cách biểu mẫu web hoặc xác thực dữ liệu, người dùng có thể nhập thông tin sau cho tên
Điều này sẽ dẫn đến các câu lệnh SQL sau
Bây giờ, khi điều này được thực thi cùng với câu lệnh select đang được thực thi, các bản ghi từ bảng doanh số bán hàng sẽ bị xóa – rất khó có khả năng đó là kết quả mà chúng ta mong muốn. Vì vậy, làm thế nào chúng ta có thể ngăn chặn điều này xảy ra? . Với một câu lệnh đã chuẩn bị, thay vì gửi một truy vấn thô (như tôi đã trình bày ở trên) tới công cụ cơ sở dữ liệu, trước tiên chúng tôi cho cơ sở dữ liệu biết cấu trúc của truy vấn sẽ được gửi Làm thế nào để tránh SQL injectionĐể tránh tiêm nhiễm SQL, hãy sử dụng một truy vấn đã chuẩn bị để xác định các trình giữ chỗ cho các tham số của câu lệnh truy vấn, sau đó liên kết các giá trị với các tham số đó. Hãy xem một ví dụ khác, lần này SQL INSERT sẽ được sử dụng
Tại thời điểm này, vẫn có thể có các câu lệnh độc hại được đưa vào thông qua dữ liệu được biểu thị bằng biến $name được chuyển đến cơ sở dữ liệu. Thay vào đó, hãy thay đổi câu lệnh trên để gửi một trình giữ chỗ đến công cụ cơ sở dữ liệu
Bây giờ, không thể tiêm vì không có giá trị (biến hoặc chữ) nào được gửi đến công cụ cơ sở dữ liệu Câu lệnh được tham số hóa (đôi khi được gọi là mẫu) được gửi đến công cụ cơ sở dữ liệu bằng hàm mysqli_prepare() Vậy làm thế nào để chúng ta thực sự lấy chính giá trị đó vào cơ sở dữ liệu? Hãy đặt tất cả những điều này lại với nhau trong một ví dụ
Vì các biến liên kết được gửi đến công cụ cơ sở dữ liệu tách biệt với truy vấn nên chúng không thể bị can thiệp. Công cụ cơ sở dữ liệu sử dụng các giá trị trực tiếp tại thời điểm thực thi sau khi bản thân câu lệnh đã được phân tích cú pháp Lưu ý rằng tham số thứ hai của hàm 'mysql_stmt_bind_param()' là một chuỗi để biểu thị '(các) loại' cho các giá trị được truyền. Trong trường hợp này, chỉ có một giá trị được chuyển và giá trị đó thuộc loại chuỗi. Đoạn mã trên nên được mở rộng để bao gồm kiểm tra lỗi trong quá trình thực hiện mỗi chức năng cơ sở dữ liệu Nếu bạn đang sử dụng Zend Server trong môi trường của mình thì bạn biết rằng bạn có
Các hàm đó có thể hiển thị dữ liệu từ ứng dụng, chẳng hạn như giá trị truy vấn dữ liệu. Điều bạn có thể không biết là Zend Server cũng bao gồm khả năng che dấu dữ liệu cho các chức năng, mã định danh và khóa — cũng như các giá trị MySQL và PHP. ngăn xếp ĐÈNMySQL và PHP là những phần không thể thiếu của ngăn xếp LAMP phổ biến, là một ngăn xếp các thành phần có khả năng phát triển cũng như triển khai các ứng dụng dựa trên web có nội dung động. Các ứng dụng năng suất phổ biến — chẳng hạn như WordPress, Drupal, Magento, ZenCart và các ứng dụng khác — đều tận dụng lợi thế của ngăn xếp này. Họ sử dụng nó để triển khai các giải pháp năng suất, chất lượng cao, sẵn sàng cho doanh nghiệp trong Quản lý quan hệ khách hàng (CRM), Thương mại điện tử, Hệ thống quản lý nội dung (CMS) và các không gian khác Các ứng dụng này thường là chìa khóa trao tay trong cách tiếp cận cài đặt/cấu hình và dựa vào cách tiếp cận cộng đồng để phát triển cũng như hỗ trợ. Hỗ trợ cấp doanh nghiệp cho các loại giải pháp này có thể được lấy từ một số nguồn bao gồm nhóm OpenLogic tại Perforce Ghi chú. Từ viết tắt LAMP đề cập đến Hệ điều hành (Linux), Máy chủ web (Apache), Hệ thống quản lý cơ sở dữ liệu (DBMS) và Ngôn ngữ kịch bản (PHP). Nhưng thực tế là cùng một ngăn xếp có sẵn trên vô số hệ điều hành bao gồm Windows (WAMP) và IBM i (iAMP). Sơ đồ sau biểu diễn ngăn xếp Giải pháp PHP và MySQL từ ZendCác ứng dụng web, cho dù là máy tính để bàn hay thiết bị di động, đều là những cách mạnh mẽ để đưa dữ liệu vào tay nhân viên, khách hàng hoặc các bên liên quan khác của bạn để hỗ trợ bất kỳ số lượng yêu cầu nào bao gồm thương mại, lập kế hoạch tài nguyên cũng như xây dựng và chia sẻ thông tin PHP và MySQL là hai công cụ có giá trị để đưa dữ liệu lên web thông qua các ứng dụng của khách hàng cũng như các giải pháp Nguồn mở hiện có dựa trên các công nghệ này. Zend by Perforce có các tài nguyên trong không gian PHP có thể giúp bạn phát triển chiến lược triển khai các giải pháp PHP/MySQL cũng như cung cấp hỗ trợ cho các giải pháp được triển khai trên các công nghệ này Dùng thử Zend Server miễn phí. Tải xuống bản dùng thử miễn phí nền tảng phát triển ứng dụng web Zend Server. Xem cách bạn có thể cải thiện mức độ nhanh nhẹn và dịch vụ Làm cách nào để liên kết PHP với MySQL?Tạo nên cơ sở dữ liệu Tạo thư mục trong htdocs Tạo tệp kết nối cơ sở dữ liệu trong PHP Tạo tệp php mới để kiểm tra kết nối cơ sở dữ liệu của bạn chạy nó Làm cách nào để kết nối PHP với các ví dụ về cơ sở dữ liệu MySQL?php $servername = "localhost"; . "
Làm cách nào để kết nối PHP với máy chủ SQL?Kết nối với SQL Server bằng trình điều khiển PHP và ODBC . Bước 1. Kết nối với nguồn dữ liệu ODBC. Hàm odbc_connect() được sử dụng để kết nối với nguồn dữ liệu ODBC. . Bước 2. Thực thi một câu lệnh SQL. . Bước 3. In tập kết quả PHP tương tác với MySQL như thế nào?Ngôn ngữ PHP cung cấp các hàm giúp giao tiếp với MySQL cực kỳ đơn giản. Bạn sử dụng các hàm PHP để gửi truy vấn SQL tới cơ sở dữ liệu . Bạn không cần biết chi tiết về giao tiếp với MySQL; . Bạn chỉ cần biết các truy vấn SQL và cách sử dụng các hàm PHP. |