Insérer une ligne de la Table MySQL à l'aide de PHP Formulaire

J'aimerais que l'utilisateur puisse insérer une "offre" dans une table MySQL à l'aide d'un formulaire php - ce n'est que pour la démo, ne vivent pas le but. Je reçois le message d'erreur suivant,

Erreur: Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre versions du serveur MySQL pour la bonne syntaxe à utiliser près de "90','2011-07-13" à la ligne 3 (Ligne 3 se réfère à mon tag?) Je me dis qu'il ne marche pas comme les entrées d'un formulaire juste en étant "texte" type, mais aucune idée de comment le résoudre - tous les conseils très bienvenue, c'est ma forme & code php ci-dessous;

<form action="insert.php" method="post">
<div><label for="commodity">Commodity</label><input type="text" name="commodity"/></div>
<div><label for="region">Region</label><input type="text" name="region"/></div>
<div><label for="member">Member</label><input type="text" name="member" /></div>
<div><label for="size">Size</label><input type="int" name="size" /></div>
<div><label for="price">Post Bid</label><input type="decimal" name="price" /></div>
<div><label for="posted">Date Posted</label><input type="text" name="posted"/></div>
<P><label for="submit">Submit Bid</label><input type="submit" /></P>
</form>

& php

<?php
$con = mysql_connect("localhost","","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("palegall_newTrader", $con);
$sql="INSERT INTO `buy` (commodity, region, member, size, price, posted)
VALUES
('$_POST[commodity]','$_POST[region]','$_POST[member]','$_POST[size]','$_POST[price]','$_POST[posted]'";
if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";
mysql_close($con)
?> 

Merci beaucoup à l'avance, - écosse

  • Juste à l'aide de variables post dans une requête est dangereux (et s'ils comprennent le caractère ' et modifiez le code c'est exécutée).. Envisagez d'utiliser les requêtes paramétrées
  • se terminant ronde crochet égaré ...$sql="INSERT INTO buy (matières premières, de la région, membre de, la taille, le prix, affichés) VALEURS ('$_POST[commodity]','$_POST[region]','$_POST[member]','$_POST[size]','$_POST[price]','$_POST[posted]')";
  • Merci Bob & Adam - Dans les nouvelles à ce sujet (évidemment) & ne pas comprendre au sujet de sanatising & injection encore (mais jeté un coup d'oeil au lien fourni - merci) & pour les corrections, beaucoup apprécié.
InformationsquelleAutor scotia | 2011-07-21