sql >> Databasteknik >  >> RDS >> Mysql

Uppdatera databasdata med knappen Skicka

Du måste lägga in URL:en i åtgärdsattributet som gör formulärbearbetningen, inte funktionen:

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

Om detta är på samma sida kan du bara utelämna det eller använda $_SERVER['PHP_SELF'] , fånga sedan formulärinlämningen. Inuti den processen, anropa sedan din anpassade funktion.

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

    updater($value, $id);
}

En enkel lösning skulle vara att bara citera strängen i den:

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

Men detta är öppet för SQL-injektion, ett annat sätt att göra säkrare frågor är att förbereda dem:

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. Jämföra objekt efter värde. Del 6:Struktur Jämställdhetsimplementering

  2. Begränsa en kolumn till att endast acceptera två värden

  3. 4 funktioner för att formatera ett tal till 2 decimaler i SQL Server

  4. SQL Server Error 7222:"Endast en SQL Server-leverantör är tillåten i denna instans"