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

lỗi mysql_fetch_assoc () khi dữ liệu trong trường mysql bị thay đổi

Bạn không thực hiện bất kỳ lỗi kiểm tra nào trong truy vấn của mình, vì vậy không có gì ngạc nhiên khi truy vấn bị lỗi. Cách thêm tính năng kiểm tra lỗi thích hợp được nêu trong hướng dẫn sử dụng mysql_query() hoặc trong câu hỏi tham khảo.

Ví dụ:

$result = mysql_query($SQL);

if (!$result)
 { trigger_error("mySQL error: ".mysql_error());
   die(); }

truy vấn của bạn bị hỏng vì bạn không đặt đầu vào trong dấu ngoặc kép. Bạn có thể tránh dấu ngoặc kép * chỉ cho số nguyên (62ac1175 không phải). Hãy thử

$SQL = "SELECT * FROM tb_employees WHERE URL_ID = '$URL_ID'";

Ngoài ra, mã bạn hiển thị dễ bị tấn công bởi chèn SQL . Sử dụng phương pháp vệ sinh thích hợp cho thư viện của bạn (như mysql_real_escape_string() cho thư viện mysql cổ điển mà bạn đang sử dụng) hoặc chuyển sang PDO và các câu lệnh đã chuẩn bị.

Trong mã của bạn, điều này sẽ giống như sau:Thay vì

$URL_ID = $_GET["a"];

làm

$URL_ID = mysql_real_escape_string($_GET["a"]);

* tuy nhiên, nếu bạn tránh dấu ngoặc kép, mysql_real_escape_string() sẽ không hoạt động và bạn cần phải kiểm tra theo cách thủ công xem tham số có thực sự là một số nguyên hay không.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có FIND_IN_SET theo chỉ mục trong MySQL không?

  2. Làm thế nào để tạo các thủ tục tạm thời trong MySQL?

  3. Lưu trữ mảng trong MySQL?

  4. Đếm và nhóm cùng một cột có tên trong các bảng khác nhau (trong đó mệnh đề chỉ từ một bảng)

  5. Mysql - Làm thế nào để so sánh hai đối tượng Json?