Thiết kế của mysql_query
chức năng đến mức bạn phải cẩn thận để thoát từng bit dữ liệu mà bạn đang đưa vào nó và nếu bạn bỏ lỡ dù chỉ một cái, toàn bộ ứng dụng của bạn có thể bị phá hủy bởi href công cụ khai thác lỗ hổng SQL tự động
.
Cả mysqli
và các trình giữ chỗ hỗ trợ PDO được yêu cầu để đảm bảo rằng các truy vấn của bạn an toàn trước các lỗi tiêm SQL. Đang gọi mysql_real_escape_string
về mọi thứ không chỉ tẻ nhạt mà còn dễ xảy ra lỗi và đó là nơi phát sinh các vấn đề.
mysql
các hàm là sản phẩm của những ngày đầu tiên của PHP và bị hạn chế hơn đáng kể so với các tính năng hướng đối tượng mới được cung cấp bởi cả mysqli
như một tùy chọn hoặc PDO theo thiết kế.
Có một số lý do chính đáng để sử dụng một trong hai giao diện mới này, nhưng quan trọng nhất là mysql_query
chức năng đơn giản là quá nguy hiểm để sử dụng trong mã sản xuất. Với nó, bạn sẽ luôn tránh khỏi một số sai lầm khỏi một số vấn đề rất nghiêm trọng.
Có một lý do khiến việc tách cơ sở dữ liệu chứa đầy mật khẩu và số thẻ tín dụng liên tục hiển thị. Có một điểm chèn SQL rõ ràng khiến việc tiếp quản hoàn toàn một trang web gần như quá dễ dàng.