Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP / MYSQL Schaltfläche zur Spalte hinzufügen

Ändern Sie Ihren Code wie folgt, um ihn sicher und funktionsfähig zu machen:

<?php
// Connect to the database

mysql_connect ("localhost","Username","Password") 
  or die ('Error: ' . mysql_error());

echo "connected to database!";

mysql_select_db ("Database");

// Insert data into table

$Email= mysql_real_escape_string($_POST['Input2']);
$Name= mysql_real_escape_string($_POST['Input3']);
$Company= mysql_real_escape_string($_POST['Input4']);
$Price= mysql_real_escape_string($_POST['Input5']);

$action = mysql_real_escape_string('insert php code for button here');

$query = "INSERT INTO CustomerInformation 
         (Email,Name,Company,Price,Tab Count,Action) 
         VALUES
         ('$Email', '$Name', '$Company', '$Price', '$action') ";
mysql_query($query) or die ('Error updating database');

echo "Database updated successfully!";

?>

Beachten Sie, dass Sie keine id einfügen müssen in den Tisch. Wenn Sie ein Autoincrement-Feld id haben dann erstellt MySQL automatisch eine ID für Sie.
mysql_real_escape_string() maskiert Werte für dich. Umschließen Sie immer Ihre $var in der Abfrage mit ' einfache Anführungszeichen oder mysql_real_escape_string() wird nicht funktioniert! Und verwenden Sie es niemals für Spalten-/Tabellen- oder Datenbanknamen, sondern nur für Werte.

Siehe:diese Fragen für weitere Informationen:

SQL-Injection allgemein:Wie funktioniert die SQL-Injection aus den "Bobby Tables "XKCD-Comicarbeit?
Schutz vor SQL-Injection bei Verwendung dynamischer Tabellennamen:Wie verhindert man SQL-Injection mit dynamischen Tabellennamen?