Vlastně jsem vzal vaše skripty, nahrál je na svůj server, vytvořil databázovou tabulku a otestoval skript.
Na každý příspěvek se vkládá pouze jeden řádek.
Váš skript funguje správně.
Ve vašem testovacím postupu je však chyba.
Zkontroloval jsem také konzolu Firebug a volání AJAX funguje podle očekávání.
Pokud nemáte jinou diagnostiku, myslím, že vám již nemohu pomoci.
Upozornění na chybu
Ve vašem kódu je chyba, která vám v příštích letech způsobí nesmírný zármutek...
if($stmt){
echo "thank you .we will be in touch soon";
}
else{
echo "there was an error. try again later.";
}
Toto if
příkaz bude vždy vyhodnocen jako pravdivý, protože dotaz je vykonán (pokud samozřejmě MySQL neběží).
Chtěli jste zjistit, zda bylo vložení úspěšné, a proto musíte zkontrolovat:
if($stmt->affected_rows){...}
$stmt->affected_rows
vrátí -1 při selhání nebo +1 při úspěchu.
Strategie ladění
(1) Přidejte do svého pole další pole s časovým razítkem, abyste viděli, kdy jsou záznamy vloženy. To vám poskytne lepší přehled o tom, co se děje.
(2) Vyprázdněte stůl a zkuste kód znovu. Můžete si myslet, že dostáváte více příloh, ale také se může stát, že jste čtyřikrát stiskli tlačítko Odeslat.