AndyFFM: Fehlerhafter Eintrag eines Select-Feldes mittels MySQL Update

Beitrag lesen

Hallo,
für mich scheinbar aus dem Nichts ist plötzlich ein Fehler in meinem Code, der ohne bewusste Änderung vorher fehlerfrei funktionierte.

Ich lasse aus einem Formular mittels $_POST aus einem Select-Feld das Geschlecht einer Person übergeben. Der Value ist entweder "w" oder "m".

Zur Fehlerquellensuche lasse ich ausgeben:
echo "Übergebenes Geschlecht:".$_POST['geschlecht'];

Die Ausgabe zeigt immer korrekt w oder m an.

Dann lasse ich das in der Datenbank speichern mittels:

  
$sql= "UPDATE profil SET Geschlecht = '".$_POST['geschlecht']."' WHERE Name = '".$_SESSION['ID']."';";  
$result = mysql_query($sql) OR die(mysql_error());  

Nun tritt der Fehler auf, dass er in der Datenbank nichts speichert. Auch wenn dort vorher z.B. der Wert "m" eingetragen war, überschreibt er ihn nun mit einem leeren Feld.

Wenn ich im $sql-String statt '".$_POST['geschlecht']."' einen manuellen String eintrage wie 'xytest', wird dieser korrekt gespeichert.

Auch wenn ich eine Übergangsvariable benutze wie

  
$geschlecht = $_POST['geschlecht'];  
$sql= "UPDATE profil SET Geschlecht = '".$geschlecht."' WHERE Name = '".$_SESSION['ID']."';";  

wird ein leeres Feld gespeichert. Wenn ich die Variable manuell auf $geschlecht = "test" setze, wird korrekt "test" gespeichert.

Ich habe nachgelesen, dass per $_POST übergebene Werte immer Strings sind, was mir auch in den Kram passt. Bloß warum funktionieren manuelle String im Update, der String aus der $_POST-Variable jedoch nicht?

Ich hoffe jemand sieht den Fehler. Danke für Hilfe :)
Andy