Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

PHP/MySQL - bagaimana cara membuat tautan hapus secara otomatis untuk satu baris dalam tabel yang sudah dibuat secara otomatis?

Ubah ini

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

ke

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

kemudian pada "deletepage.php", apa pun yang Anda akan memanggil halaman itu lakukan sesuatu seperti

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();

Saya tidak tahu driver apa yang Anda gunakan di sini, tetapi solusi yang lebih disukai adalah menggunakan pernyataan yang disiapkan dengan kueri berparameter.

Jadi cukup banyak Anda mengirim id melalui GET parameter ke "hapus halaman" Anda. Halaman itu mengambil nilai itu, melemparkannya ke int untuk menghindari injeksi SQL (baca lebih lanjut di bawah), dan kemudian menghapus data. Anda juga bisa alih-alih menggemakan kesuksesan di sana, gunakan header untuk mengarahkan mereka ke halaman sebelumnya. Anda dapat menambahkan GET parameter ke url itu menampilkan pesan sukses. (atau Anda selalu dapat melakukan semua ini di halaman yang sama dan cukup periksa apakah id sedang dikirim).

Anda juga harus memiliki halaman ini di belakang sistem login seseorang yang aman. Anda tidak ingin ada pengguna/bot yang dapat mengeksekusi deletepage.php .

Bagaimana cara mencegah injeksi SQL di 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

Saya kira Anda menggunakan mysqli jadi lihat dokumen ini untuk pernyataan yang disiapkan dengan driver itu, 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. Berikan izin pengguna untuk hanya melihat tampilan MySQL dan tidak ada yang lain

  2. MySQL LOAD_FILE() memuat nilai nol

  3. Keamanan utas dari Select Last_Insert_ID dari MySQL

  4. Failover &Failback di Amazon RDS

  5. Python Pandas - Menggunakan to_sql untuk menulis bingkai data besar dalam potongan