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
.