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

PHP / MySQL - làm thế nào để tự động tạo liên kết xóa cho một hàng trong bảng đã được tạo tự động?

Thay đổi điều này

<a href='#'><span class='delete'>

đến

<a href='deletepage.php?id=" . $row["ID"] . "'><span class='delete'>

sau đó trên "deletepage.php", bất cứ điều gì bạn định gọi là trang đó, hãy làm điều gì đó giống như

require_once('dbconnect.php');
$id = (int)$_GET['id'];
$sql = "DELETE FROM Predictions WHERE id=" . $id;    
if($conn->query($sql) === TRUE) {
    echo "Item deleted successfully";
} else {
    echo "Error deleting record; ". $conn->error;
}
$conn->close();

Tôi không biết bạn đang sử dụng trình điều khiển nào ở đây nhưng giải pháp ưu tiên sẽ là sử dụng một câu lệnh được chuẩn bị sẵn với một truy vấn được tham số hóa.

Rất nhiều bạn gửi id thông qua GET tham số "xóa trang" của bạn. Trang đó nhận giá trị đó, chuyển nó thành int để tránh việc đưa vào SQL (đọc thêm bên dưới), và sau đó xóa dữ liệu. Bạn cũng có thể thay vì lặp lại thành công ở đó, hãy sử dụng header để chuyển hướng họ đến trang trước. Bạn có thể thêm một GET tham số url đó hiển thị một thông báo thành công. (hoặc bạn luôn có thể thực hiện tất cả việc này trên cùng một trang và chỉ cần kiểm tra xem id đang được gửi).

Ngoài ra, bạn nên có trang này đằng sau hệ thống đăng nhập an toàn của ai đó. Bạn không muốn bất kỳ người dùng / bot nào có thể thực thi deletepage.php đó .

Làm cách nào để ngăn chặn việc đưa SQL vào PHP?
http://php.net/manual/en /security.database.sql-injection.php
https://www.owasp.org /index.php/SQL_Injection_Prevention_Cheat_Sheet#Defense_Option_1:_Prepared_Statements_.28Parameterized_Queries.29

Tôi đoán bạn đang sử dụng mysqli vì vậy hãy xem tài liệu này để biết các câu lệnh đã chuẩn bị sẵn với trình điều khiển đó, http ://php.net/manual/en/mysqli.quickstart.prepared-statements.php .




  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ách hoạt động của hàm UCASE () trong MySQL

  2. Làm thế nào để hiển thị cơ sở dữ liệu MySQL trên một tập lệnh PHP?

  3. Laravel:Cách sử dụng nhiều mối quan hệ bảng tổng hợp

  4. Cách khắc phục MySql:kích thước cột chỉ mục quá lớn (Di chuyển Laravel)

  5. Làm cách nào để thoát% trong một truy vấn bằng cách sử dụng execute () và pymysql của python's sqlalchemy?