Changez votre code en celui-ci pour le rendre sécurisé et fonctionnel :
<?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!";
?>
Notez que vous n'avez pas besoin d'insérer un id
dans le tableau. Si vous avez un champ d'auto-incrémentation id
que MySQL créera automatiquement un identifiant pour vous.mysql_real_escape_string()
échappe les valeurs pour toi. Entourez toujours votre $var
dans la requête avec '
guillemets simples ou mysql_real_escape_string()
ne sera pas travail! Et ne l'utilisez jamais pour les noms de colonne/table ou de base de données, uniquement pour les valeurs.
Voir :ces questions pour plus d'informations :
Injection SQL en général :Comment fonctionne l'injection SQL depuis les "Bobby Tables " Travail de bande dessinée XKCD ?
protection contre l'injection SQL lors de l'utilisation de noms de tables dynamiques :Comment empêcher l'injection SQL avec des noms de table dynamiques ?