Ich habe tatsächlich Ihre Skripte genommen, sie auf meinen Server geladen, die Datenbanktabelle erstellt und das Skript getestet.
Pro Übermittlung wird nur eine Zeile eingefügt.
Ihr Skript funktioniert ordnungsgemäß.
Es gibt jedoch einen Fehler in Ihrem Testverfahren.
Ich habe auch die Firebug-Konsole überprüft und der AJAX-Aufruf funktioniert wie erwartet.
Wenn Sie keine anderen Diagnosen haben, glaube ich nicht, dass ich Ihnen weiterhelfen kann.
Fehlermeldung
Es gibt einen Fehler in Ihrem Code, der Ihnen in den kommenden Jahren immensen Kummer in Ihrem Leben bereiten wird...
if($stmt){
echo "thank you .we will be in touch soon";
}
else{
echo "there was an error. try again later.";
}
Dieses if
-Anweisung wird immer als wahr ausgewertet, da die Abfrage ausgeführt wird (es sei denn, MySQL läuft nicht).
Sie wollten sehen, ob die Einfügung erfolgreich war, und dafür müssen Sie Folgendes überprüfen:
if($stmt->affected_rows){...}
$stmt->affected_rows
gibt -1 bei Fehlschlag oder +1 bei Erfolg zurück.
Debugging-Strategien
(1) Fügen Sie ein zusätzliches Feld mit einem Zeitstempel hinzu, damit Sie sehen können, wann die Datensätze eingefügt werden. Dadurch erhalten Sie einen besseren Einblick in das, was dort vor sich geht.
(2) Leeren Sie Ihren Tisch und versuchen Sie Ihren Code erneut. Sie denken vielleicht, dass Sie mehrere Einfügungen erhalten, aber es könnte auch sein, dass Sie viermal auf die Schaltfläche „Senden“ geklickt haben.