• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

MySQL Syntax Felher - finde ihn nicht...

Status
Für weitere Antworten geschlossen.

GoBo

Neues Mitglied
Ich bekomme die Meldung, dass in Zeile 4 ein Fehler ist, finde aber keinen...

PHP:
include "inc.sql.zugangsdaten.php";
 $sql="INSERT INTO tabelle1 SET
  name='".$_POST['name']."',
  ort='".$_POST['ort']."',
  mail='".$_POST['mail']."'";
  mysql_query($sql) or die(mysql_error());
  echo "Die Daten sind erfolgreich in der Datenkank abgelegt worden.<br><br>";
 
wieso lest ihr eigentlich nie reichtig? im referenzhandbuch steht dazu alles.

ersetz' das SET mit VALUES und mach' klammern um das einzufügende.

es kann noch zweckmäßig sein, die ID (falls vorhanden) mit '' (einfachen hochkommata, leergelassen) mit zu übertragen.

Nils aka XraYSoLo
 
Ich denke mal er hat euch verstanden.
Also nächstes mal selber nachlesen, aber einmal denke ich können wir hier nun auch nochmal jemandem auf die Sprünge helfen

PHP:
include ("inc.sql.zugangsdaten.php");
$sql= "
INSERT INTO 
  `tabelle1` (
  `name`,
  `ort`,
  `mail`
) VALUES (
  '".mysql_real_escape_string($_POST["name"])."',
  '".mysql_real_escape_string($_POST["ort"])."',
  '".mysql_real_escape_string($_POST["mail"])."'
) ";
  mysql_query($sql) or die(mysql_error());
  echo "Die Daten sind erfolgreich in der Datenkank abgelegt worden.<br><br>";

Das mysql_real_escape_string() sorgt dafür, dass die MySQL - Injection erschwert wird
 
Dank Euch, funktioniert jetzt..

Dank Euch, jetzt funktioniert es so:

PHP:
$sql= "
 INSERT INTO
         `tabelle1`
  SET
        `name` = '".$_POST['name']."',
        `ort` = '".$_POST['ort']."',
        `mail` = '".$_POST['mail']."'
        ";
   mysql_query($sql) or die (mysql_error());
 
Warum soll er nicht SET bei INSERT verwenden, damit sieht er direkt, welcher Spalte er welchen Wert zuweist. Er kann damit dann eben nicht mehrere Datensätzer auf einen Schlag einfügen, aber das ist ja auch nicht immer notwendig.


N43
 
und wegen der mysql injection, da kann man besser htmlspecialchars() nehmen, die führt die query auf jeden fall aus ;)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben