Ik heb je scripts genomen, ze op mijn server geladen, de databasetabel gemaakt en het script getest.
Er wordt slechts één rij per inzending ingevoegd.
Je script werkt correct.
Er zit echter een fout in uw testprocedure.
Ik heb ook de Firebug-console gecontroleerd en de AJAX-aanroep werkt zoals verwacht.
Tenzij je andere diagnoses hebt, denk ik niet dat ik je verder kan helpen.
Bugmelding
Er zit een fout in uw code die u de komende jaren enorm veel verdriet zal bezorgen in uw leven...
if($stmt){
echo "thank you .we will be in touch soon";
}
else{
echo "there was an error. try again later.";
}
Deze if
statement zal altijd worden geëvalueerd als waar, aangezien de query wordt uitgevoerd (tenzij MySQL natuurlijk niet actief is).
Wat je bedoelde is om te zien of het invoegen succesvol was, en daarvoor moet je het volgende controleren:
if($stmt->affected_rows){...}
$stmt->affected_rows
geeft -1 terug bij mislukking of +1 bij succes.
Debuggingstrategieën
(1) Voeg een extra veld toe aan uw met een tijdstempel zodat u kunt zien wanneer de records zijn ingevoegd. Dit geeft je meer inzicht in wat er binnenkomt.
(2) Maak je tafel leeg en probeer je code opnieuw. U denkt misschien dat u meerdere bijlagen krijgt, maar het kan ook zijn dat u 4 keer op de verzendknop drukt.