sql >> Databáze >  >> RDS >> Mysql

PHP/MySQL - jak automaticky vygenerovat odkaz na odstranění řádku v již automaticky vygenerované tabulce?

Změňte toto

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

do

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

pak na "deletepage.php", ať už tu stránku nazvete jakkoli, udělejte něco jako

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

Nevím, jaký ovladač zde používáte, ale preferovaným řešením by bylo použití připraveného příkazu s parametrizovaným dotazem.

Takže v podstatě pošlete id prostřednictvím GET parametr na vaši "smazat stránku". Stránka převezme tuto hodnotu a přenese ji do int abyste se vyhnuli injekcím SQL (čtěte dále níže), a poté data odstraní. Místo opakování úspěchu byste také mohli použít header přesměrovat je na předchozí stránku. Můžete připojit GET parametr k této adrese URL zobrazí zprávu o úspěchu. (nebo to všechno můžete udělat vždy na stejné stránce a jen zkontrolovat, zda id se odesílá).

Také byste měli mít tuto stránku za někým bezpečným přihlašovacím systémem. Nechcete, aby žádný uživatel/bot mohl spustit tento deletepage.php .

Jak mohu zabránit vkládání SQL v 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

Hádám, že používáte mysqli takže se podívejte do tohoto dokumentu, kde najdete připravená prohlášení s tímto ovladačem, http ://php.net/manual/en/mysqli.quickstart.prepared-statements.php .




  1. Jak spravovat data správy verzí uložená v mysql

  2. Nejlepší přístupy pro seskupený medián

  3. Vysoká dostupnost PostgreSQL s architekturami Master-Slave a Master-Master

  4. Nástroj pro překlad Oracle PL/SQL do Postgresql PL/pgSQL