Ich glaube, dass ich deinen Fehler gefunden habe. *freu*
Wenn du das Feld 'alter' umbenennst, sollte auch dein erster Weg wieder einwandfrei funktionieren. Meine einzige Erklärung dafür ist eigentlich, dass ja ALTER ein Schlüsselwort der SQL-Sprache ist und deshalb darf man es nicht als Feldnamen benutzen. Wenn dein Feld aber unbedingt 'alter' heißen muß, dann mußt du es in der SQL-Anweisung in die Hochstriche einpacken.
So würde die korrekte Anweisung aussehen:
DBC_2 ("INSERT INTO single_boerse (user_name,was,treu,kuehlschrank,single_seit_z,single_seit_e,`alter`,schuechtern,macho,er,du) VALUES ('$myusername','$cboa_was','$cboa_treu','$cboa_kuehlschrank','$txt_single_seit','$cboa_single_seit','$cboa_alter','$cboa_schuechtern','$cboa_macho','$txt_partner','$txt_du')");
Also bei mir hat es damit dann funktioniert, da ich genau deine Tabelle, Funktion und SQL-Anweisung zum Testen benutzt habe.
Ich hoffe es funktioniert bei dir und wünsche dir noch viel Spaß!
Vielleicht hat ja jemand eine genaue Erklärung dafür (meine hab ich mir nur so zusammengereimt)
Gruß