Mysql
 sql >> база данни >  >> RDS >> Mysql

PHP/MySQL - как да генерирам автоматично връзка за изтриване на ред в вече автоматично генерирана таблица?

Променете това

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

до

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

след това на "deletepage.php", както и да наречете тази страница, направете нещо като

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

Не знам какъв драйвер използвате тук, но предпочитаното решение би било използването на подготвен израз с параметризирана заявка.

Така че почти изпращате id чрез GET параметър към вашата "страница за изтриване". Тази страница приема тази стойност, прехвърля я към int за да избегнете SQL инжекции (прочетете по-долу), и след това изтрива данните. Можете също да използвате header вместо да повтаряте успех за да ги пренасочите към предишната страница. Можете да добавите GET параметър към този url показва съобщение за успех. (или винаги можете да направите всичко това на една и съща страница и просто да проверите дали id се изпраща).

Също така трябва да имате тази страница зад сигурна система за влизане. Не искате никой потребител/бот да може да изпълни този deletepage.php .

Как мога да предотвратя SQL инжектирането в PHP?
http://php.net/manual/en /security.database.sql-injection.php
https://www.29">. /index.php/SQL_Injection_Prevention_Cheat_Sheet#Defense_Option_1:_Prepared_Statements_.28Parameterized_Queries.29

Предполагам, че използвате mysqli така че разгледайте този документ за подготвени изявления с този драйвер, 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. Допълване на началото на поле на mysql INT с нули

  2. Как да изберете две колони като една?

  3. Как да заменя идентификаторите на отдели, разделени със запетая, съответно с тяхното име?

  4. Каква е SQL командата за връщане на имената на полетата на таблица?

  5. PDO fetchAll групови двойки ключ-стойност в асоцииран масив