Cambie su código a este para que sea seguro y funcional:
<?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!";
?>
Tenga en cuenta que no necesita insertar un id
en la mesa Si tiene un campo de incremento automático id
que MySQL creará automáticamente una identificación para usted.mysql_real_escape_string()
escapa valores para usted. Rodea siempre tu $var
en la consulta con '
comillas simples o mysql_real_escape_string()
no ¡funciona! Y nunca lo use para nombres de columnas/tablas o bases de datos, solo para valores.
Consulte:estas preguntas para obtener más información:
Inyección de SQL en general:¿Cómo funciona la inyección de SQL de "Bobby Tables"? "¿Obra cómica de XKCD?
protección contra inyección SQL cuando se usan nombres de tablas dinámicos:¿Cómo prevenir la inyección SQL con nombres de tablas dinámicos?