Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chuyển trang web lớn từ MySQL sang MySQLi

Không có câu trả lời dễ dàng cho câu hỏi của bạn vì thực tế mọi cách đơn giản để làm điều này đều liên quan đến việc thực hiện những việc khác khi ứng dụng được viết.

Nếu bạn có các lệnh gọi trực tiếp đến các hàm mysql_ * trong suốt mã của mình và không có lớp trừu tượng cơ sở dữ liệu nơi bạn thực hiện các truy vấn của mình thông qua một lớp hoặc hàm trợ giúp thì bạn sẽ cần phải chỉnh sửa mọi lệnh.

Bạn không thể chỉ cần thêm i vào các lệnh như mysql_query dưới dạng thủ tục mysqli_query() yêu cầu tham số đầu tiên là liên kết đến db trong đó với mysql_query() nếu một kết nối nào đó đã được cung cấp, thì đó là tham số thứ hai.

Thay vì chỉ thay đổi mysql_query (...) thành mysqli_query ($ link, .....), tôi khuyên bạn không có thời điểm nào tốt hơn để đặt một lớp trừu tượng db tại chỗ. Vì vậy, hãy sử dụng các hàm như sql_query () thực sự xử lý các truy vấn của bạn để trong tương lai nếu bạn cần thay đổi lại DB, bạn có thể chỉ cần cập nhật các lệnh cụ thể db trong một tệp trừu tượng. Theo cách đó, nếu bạn viết một hàm bao bọc mysqli_query thì bạn có thể chỉ cần đổi tên mysql_query () thành hàm trợ giúp của bạn và để hàm trợ giúp lo lắng về việc đưa liên kết vào đó.

Trong khi đó là cách đơn giản nhất, nó sẽ không ràng buộc các tham số hoặc chuẩn bị các câu lệnh, đây là yếu tố chính trong việc ngăn chặn các lỗ hổng chèn sql

Khi bạn đã thay đổi tất cả các lệnh này, bạn cần kiểm tra.

Nếu bạn không có bài kiểm tra tự động nào được viết thì đây có lẽ là thời điểm tốt để bắt đầu viết chúng. Mặc dù bạn sẽ cần phải kiểm tra xem mọi thay đổi đã hoạt động chưa, nhưng nếu bạn thực hiện bằng cách kiểm tra tự động thì bạn có thể tránh được nỗi đau đó trong tương lai.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:cách thực hiện tìm kiếm nhiều bảng đầy đủ

  2. Symfony2 tạo và duy trì các mối quan hệ thực thể

  3. Tính toán delta (chênh lệch của hàng hiện tại và hàng trước đó) trong sql

  4. Chèn wpdb đầu tiên vào bảng mới của mySql không hoạt động

  5. Biên dịch PHP 5.1.6 với PDO MySQL