Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Błąd wstawiania php + mysql

Wziąłem twoje skrypty, załadowałem je na mój serwer, utworzyłem tabelę bazy danych i przetestowałem skrypt.

W każdym zgłoszeniu wstawiany jest tylko jeden wiersz.

Twój skrypt działa poprawnie.

Jednak w twojej procedurze testowej jest błąd.

Sprawdziłem również konsolę Firebug i wywołanie AJAX działa zgodnie z oczekiwaniami.

Jeśli nie masz innej diagnostyki, nie sądzę, abym mogła ci dalej pomóc.

Powiadomienie o błędzie
W Twoim kodzie jest błąd, który w nadchodzących latach spowoduje ogromny smutek w Twoim życiu...

if($stmt){
   echo "thank you .we will be in touch soon";
}
else{
    echo "there was an error. try again later.";
}

Ten if instrukcja będzie zawsze oceniać jako prawda, ponieważ zapytanie jest wykonywane (chyba że MySQL nie jest uruchomiony).

Zamierzałeś sprawdzić, czy wstawienie się powiodło, i w tym celu musisz sprawdzić:

if($stmt->affected_rows){...}

$stmt->affected_rows zwróci -1 w przypadku niepowodzenia lub +1 w przypadku sukcesu.

Strategie debugowania
(1) Dodaj dodatkowe pole ze znacznikiem czasu, aby można było zobaczyć, kiedy rekordy zostały wstawione. Dzięki temu uzyskasz lepszy wgląd w to, co się dzieje.

(2) Opróżnij tabelę i spróbuj ponownie. Możesz pomyśleć, że otrzymujesz wiele wstawek, ale może się również zdarzyć, że naciśniesz przycisk przesyłania 4 razy.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL zaokrągla do najbliższych 5 centów

  2. Nie udało się odczytać wartości automatycznego przyrostu z silnika pamięci masowej, numer błędu:1467

  3. Jak uzyskać wszystkie dane z 2 tabel za pomocą klucza obcego?

  4. Tabele InnoDB istnieją w MySQL, ale mówi, że nie istnieją po skopiowaniu bazy danych na nowy serwer

  5. MySql:Pokaż kolumny, ale wyklucz wszystko oprócz nazw pól