Ändra din kod till denna för att göra den säker och funktionell:
<?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!";
?>
Observera att du inte behöver infoga ett id
in i bordet. Om du har ett autoinkrementfält id
MySQL kommer att automatiskt skapa ett id åt dig.mysql_real_escape_string()
undkommer värden till dig. Omge alltid din $var
i frågan med '
enkla citattecken eller mysql_real_escape_string()
kommer inte fungerar! Och använd den aldrig för kolumn-/tabell- eller databasnamn, bara för värden.
Se:dessa frågor för mer information:
SQL-injektion i allmänhet:Hur fungerar SQL-injektionen från "Bobby Tables" " XKCD komiskt arbete?
skydd mot SQL-injektion vid användning av dynamiska tabellnamn:Hur förhindrar man SQL-injektion med dynamiska tabellnamn?