Skocz do zawartości
  • 0

Mysql - nie zapisuje danych


sKNIGHT

Pytanie

Robię plugin na drop - zapis danych pod mysql. Dane zapisuję ale gdy wpiszę /rl to się resetują na 0. Proszę o pomoc!

 

Błędy: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

 

Klasa Main.java: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

 

Klasa User.java: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
Klasa PlayerJoinListener: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

 

 

Mysql: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

//Zasłaniam hasło ~Ixidi

 

Edytowane przez xAxee
Odnośnik do komentarza
Udostępnij na innych stronach

5 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

sb.append("newpkt='" + u.getNewPkt() +"';");
to zle a kolumna newpkt to string czy int?

bo jesli int to powinno byc chyba:
 

sb.append("newpkt=" + u.getNewPkt() +";");
a i nie widze abys zamykal () wiec moze jednak sb.append("newpkt=" + u.getNewPkt() +");");

 

Edytowane przez MrPatryk07
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
12 minut temu, Maracana17 napisał:

sorka nie pomoge bo nie umiem nic z mysql

 

To nie nabijaj sobie postow.

@sKNIGHT pisz do @TheMolkaPL, albo @Inder00. Oni ci pomoga

@MrPatryk07, przeciez jak kogos oznaczyc to dostaje sie powiadomienie, to jak nic?

Edytowane przez Sewer
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

nie podawaj publicznie hasła do bazy....

 

A tak to nie używaj stringów do operacji na bazie danych, użyj PreparedStatement, masz przykłady: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

No i od razu mówie że to nie będzie wydajna baza, np klucz masz jako uuid i to jako varchar 100 znakowy, gdzie UUID może być zapisane binarnie jako 16 bajtów.
Do tego trzymasz graczy w liśćie co nie ma sensu, bo by pobrać ich po nazwie to musisz po wszystkim iterować, od tego są mapy.

			sb.append("'" + u.getPkt() +"'"); // nie ma przecinka
			sb.append("'" + u.getNewPkt() +"'");
			sb.append(") ON DUPLICATE KEY UPDATE ");
			sb.append("name='" + u.getName() +"',");
			sb.append("lvl='" + u.getLvl() +"',");
			sb.append("coinsy='" + u.getCoinsy() +"',");
			sb.append("pkt='" + u.getPkt() +"';"); // dałeś średnik zamiast przecinka
			sb.append("newpkt='" + u.getNewPkt() +"';");

z prepared statement nie byłoby takich problem a kod byłby bezpieczniejszy i czytelniejszy.

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...