Jeg tog faktisk dine scripts, indlæste dem på min server, oprettede databasetabellen og testede scriptet.
Der indsættes kun én række pr. indsendelse.
Dit script fungerer korrekt.
Der er dog en fejl i din testprocedure.
Jeg tjekkede også Firebug-konsollen, og AJAX-kaldet fungerer som forventet.
Medmindre du har andre diagnoser, tror jeg ikke, jeg kan hjælpe dig yderligere.
Bug Alert
Der er en fejl i din kode, som vil forårsage enorm sorg i dit liv i de kommende år...
if($stmt){
echo "thank you .we will be in touch soon";
}
else{
echo "there was an error. try again later.";
}
Denne if
sætningen vil altid evalueres til sand, da forespørgslen udføres (medmindre MySQL selvfølgelig ikke kører).
Det du havde til hensigt er at se, om indsættelsen var vellykket, og for det skal du tjekke:
if($stmt->affected_rows){...}
$stmt->affected_rows
vil returnere -1 ved fiasko eller +1 ved succes.
Fejlretningsstrategier
(1) Tilføj et ekstra felt i din med et tidsstempel, så du kan se, hvornår posterne er indsat. Dette vil give dig mere indsigt i, hvad der foregår.
(2) Tøm dit bord og prøv din kode igen. Du tror måske, at du får flere indlæg, men det kan også være, at du trykker på indsend-knappen 4 gange.