2k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von novator Mitglied (121 Punkte)
Hallo,
ich steh schon wieder an.
Bin immer noch bei Formularen. Bisher habe ich nur einen Wert in die db eingetragen. Das funktioniert schon ganz gut.
Jetzt möchte ich gleichzeitig drei Werte in eine Tabelle eintragen.
Es kommt keine Fehlermeldung und am Ende wird "Der neue Teilnehmer wurde eingetragen" angezeigt, aber in der Datenbank findet sich nichts :-(

(klar, affected rows...Abfrage muss ich noch machen, aber warum läuft es bis dorthin, ohne etwas einzutragen?)




function db_teilnehmer_einfuegen()
{
if (isset($_POST["gesendet5"]))
{
connect();

$teilnehmer_name = $_POST["teilnehmer_name"];
$teilnehmer_email = $_POST["teilnehmer_email"];
$teilungsschluessel = $_POST["teilungsschluessel"];
$teilnehmer_name = mysql_real_escape_string($teilnehmer_name);
$teilnehmer_email = mysql_real_escape_string($teilnehmer_email);
$teilungsschluessel = mysql_real_escape_string($teilungsschluessel);

$sqlab = "insert teilnehmer"
. "(teilnehmer_name, teilnehmer_email, teilungsschluessel) values "
. "('".$teilnehmer_name."', "
. "'" . $teilnehmer_email."', "
. $teilungsschluessel."')";

mysql_query($sqlab);
echo "Der neue Teilnehmer wurde eingetragen";
}
}


Hat wer eine Idee?

Vielen Dank im Voraus.
lg

6 Antworten

0 Punkte
Beantwortet von aweleczka Einsteiger_in (13 Punkte)
Sicher das der Query stimmt?

Soweit ich mich an SQL erinnere müsste es
INSERT INTO teilnehmer...

sein

Wegen der Fehlerausgabe:
mit mysql_error(); kannst du die Ausgabe der Fehler kontrolieren
de2.php.net/manual/en/function.mysql-error.php
0 Punkte
Beantwortet von novator Mitglied (121 Punkte)
tja, man findet da unterschiedliche Angaben in der Literatur :(.

ich habe in den letzten Tagen einige kleine Tests mit nur einem Wert gemacht, da hat es mit dieser query funktioniert.

habs jetzt noch einmal ausprobiert, ändert aber nichts.

ich schau mir mal das mit der Fehlerausgabe an.

Danke vorerst.

lg
0 Punkte
Beantwortet von ennok Experte (1.2k Punkte)
Es ist immer eine gute Idee, nach einem mysql_query() mit mysql_errno() und mysql_error() zu prüfen, ob ein Fehler aufgetreten ist. In den allermeisten Fällen ist die Fehlerbeschreibung detailliert genug, um das Problem selbstständig zu beheben.
0 Punkte
Beantwortet von kicia Mitglied (939 Punkte)
Hat wer eine Idee?

Vor $teilungsschluessel fehlen Anführungszeichen.

Es kommt keine Fehlermeldung und am Ende wird "Der neue Teilnehmer wurde eingetragen" angezeigt


Die Meldung "Der neue Teilnehmer wurde eingetragen" wird in Deinem Script immer angezeigt, egal, ob es funktioniert hat, oder nicht.


[quote]Soweit ich mich an SQL erinnere müsste es
INSERT INTO teilnehmer...

tja, man findet da unterschiedliche Angaben in der Literatur :(.[/quote]

laut MySQL 5.1 Referenzhandbuch ist "INTO" optional. Es ist also egal, ob man es verwendet oder nicht.

Es empfiehlt sich aber, in der Dokumentation der verwendeten Implementation nachzuschlagen.
Im Zweifel würde ich "INSERT INTO" schreiben.
0 Punkte
Beantwortet von novator Mitglied (121 Punkte)
super, vielen Dank für die Antwort!
Werde ich am Abend gleich ausprobieren.
lg
0 Punkte
Beantwortet von novator Mitglied (121 Punkte)
Hallo Kicia,

hat jetzt doch länger gedauert, ein Wochenende ohne PC, herrlich :-).

Vielen Dank für deinen Tip, mit den Anführungszeichen und einem Hochkoma vor $teilungsschluessel funktioniert es.

lg
...