parse error bei mysqlquery

zinion

Erfahrenes Mitglied
Hallo Leute!

Ich habe folgenden Code:

PHP:
<?PHP
if ($_POST['button'] == "Anmelden")
{
$plzB = substr($_POST['PLZ'],0,1);
$Gender = $_POST['beGender'] + $_POST['forGender'];
$md5pass = md5($_POST['Passwort']);
include 'connect.inc.php';
mysql_query("INSERT INTO partnertraum(Nickname,Vorname,Nachname,Strasse,PLZ,plzB,Stadt,Land,Email,beGender,Alter,Groesse,Gewicht,Augenfarbe,Haarfarbe,Beschreibung,Vorlieben,forGender,Passwort,Gender) VALUES('$_POST['Nickname']','$_POST['Vorname']','$_POST['Nachname']','$_POST['Strasse']','$_POST['PLZ']','$plzB','$_POST['Stadt']','$_POST['Land']','$_POST['Email']','$_POST['beGender']','$_POST['Alter']','$_POST['Groesse']','$_POST['Gewicht']','$_POST['Augenfarbe']','$_POST['Haarfarbe']','$_POST['Beschreibung']','$_POST['Vorlieben']','$_POST['forGender']','$mdpass','$Gender')") or die ("Ungültige Abfrage: " . mysql_error());
mysql_close();
}
else
{ bla....

Wenn ich die Seite aufrufe bekomme ich folgenden Fehler:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/html/partnertraum/anmelden.inc.php on line 8

^^ Das ist die Zeile mit dem mysqlquery. Ich verstehs nicht, weil ich das genau so in einer anderen Site verwende und da läuft es. Allerdings wird es dort ohne $_POST verwendet. Das ist der einzige Unterschied. Kann mir da jemand helfen?

P.S.: Ich habe es schon versucht mit $_POST['Variable'] statt '$_POST['Variable']' - hat aber auch nix geändert.
 
Zuletzt bearbeitet:
PHP:
VALUES('$_POST['Nickname']',
//Das kannst du nicht nutzen, weil du schon das Value an sich in ' ' (Singlequotes) stellst, kannst du diese nicht mehr in der Elementklammer nutzen
//Mögliche Lösungen:
////a: die quotes in der POST Elementklammer einfach
weglassen, ist aber syntaktisch dann nicht ganz korrekt
und kann zu Problemen bei Überschneidungen mit
PHP Konstanten führen.
////b: Query Vorher in einer Var speichern, die folgendermaßen 
aufgebaut ist an der spezifischen Stelle:
VALUES('".$_POST['Nickname']."','".$_POST[...]."' ...);
// und dann führst du aus via mysql_query($queryvar);
 
Hm aber dafür kommt jetzt - wenn ich das Formular absende:

Ungültige Abfrage: You have an error in your SQL syntax near 'Alter,Groesse,Gewicht,Augenfarbe,Haarfarbe,Beschreibung,Vorlieben,forGender,Pass' at line 1

Oder soll ich damit besser ins mySQL-Forum gehen?

PHP:
$inquery = "INSERT INTO partnertraum(Nickname,Vorname,Nachname,Strasse,PLZ,plzB,Stadt,Land,Email,beGender,Alter,Groesse,Gewicht,Augenfarbe,Haarfarbe,Beschreibung,Vorlieben,forGender,Passwort,Gender) VALUES('".$_POST['Nickname']."','".$_POST['Vorname']."','".$_POST['Nachname']."','".$_POST['Strasse']."','".$_POST['PLZ']."','$plzB','".$_POST['Stadt']."','".$_POST['Land']."','".$_POST['Email']."','".$_POST['beGender']."','".$_POST['Alter']."','".$_POST['Groesse']."','".$_POST['Gewicht']."','".$_POST['Augenfarbe']."','".$_POST['Haarfarbe']."','".$_POST['Beschreibung']."','".$_POST['Vorlieben']."','".$_POST['forGender']."','$md5pass','$Gender')";

mysql_query($inquery) or die ("Ungültige Abfrage: " . mysql_error());
mysql_close();
 
Zurück