Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zaktualizuj dane bazy danych za pomocą przycisku przesyłania

Musisz umieścić adres URL w atrybucie działania, który przetwarza formularz, a nie w funkcji:

action="<?php updater($_POST['name'],1); ?>"  // not this
action="<?php echo $_SERVER['PHP_SELF']; ?>" // path to this page

Jeśli to jest na tej samej stronie, możesz po prostu pominąć to lub użyć $_SERVER['PHP_SELF'] , a następnie przechwyć przesyłanie formularza. Wewnątrz tego procesu wywołaj swoją niestandardową funkcję.

if($_SERVER['REQUEST_METHOD'] === 'POST') {
    $value = $_POST['name'];
    $id = 1;

    updater($value, $id);
}

Prostym rozwiązaniem byłoby po prostu zacytowanie znajdującego się w nim ciągu:

$sql = "UPDATE table_name SET name='$value' WHERE id=$id";

Ale jest to otwarte na wstrzyknięcie SQL, innym sposobem na wykonanie bezpieczniejszych zapytań jest ich przygotowanie:

function updater($value,$id) {
    // Create connection
   $conn = new mysqli( 'localhost' , 'user_name' , '' , 'data_base_name' );
    // Check connection
   if ($conn->connect_error) {
       die("Connection failed: " . $conn->connect_error);
   }
   $sql = "UPDATE table_name SET name = ? WHERE id= ?";
   $update = $conn->prepare($sql);
   $update->bind_param('si', $value, $id);
   $update->execute();
   if ($update->affected_rows > 0) {
       echo "Record updated successfully";
   } else {
       echo "Error updating record: " . $conn->error;
   }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Praca ze wskaźnikami plików w csv

  2. Różnica między typami danych int i int(2) w moim sql

  3. UNPIVOT mysql dane do innej tabeli

  4. Jak wymusić unikatowość w MySQL?

  5. Wydajność Hibernate, JDBC i Java na średnim i dużym zestawie wyników