Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

problem sqlite


pan ktosik

Rekomendowane odpowiedzi

Opublikowano

czesc, co tu jest zle? Usuwalem kilka i gdzies zle postawilem znaki typu "", '', ; ,,

;/

    private void save() throws SQLException {
        int saves = 0;
        int savesg = 0;
        this.openConnection();
        final List<User> users = new ArrayList<User>(UserUtils.getUsers());
        for (int i = 0; i < users.size(); ++i) {
            final User u = users.get(i);
            final StringBuilder sb = new StringBuilder();
            final StringBuilder sbu = new StringBuilder();
            final StringBuilder sbg = new StringBuilder();
            sb.append("INSERT OR IGNORE INTO `DMGuilds_users` VALUES (");
            sb.append("'" + u.getName() + "',");
            sb.append("'" + u.getRank().getPoints() + "',");
            sb.append("'" + u.getRank().getKills() + "',");
            sb.append("'" + u.getRank().getDeaths() + "',");
            sb.append("'NULL')");
            sbu.append("UPDATE `DMGuilds_users` SET ");
            sbu.append("`rank`='" + u.getRank().getPoints() + "',");
            sbu.append("`kills`='" + u.getRank().getKills() + "',");
            sbu.append("`deaths`='" + u.getRank().getDeaths() + "';");//TUTAJ
            sbu.append(" WHERE `name`='" + u.getName() + "'");
            if (u.hasGuild()) {
                sbg.append("UPDATE `DMGuilds_users` SET ");
                sbg.append("`guild`='" + u.getGuild().getTag() + "'");
                sbg.append(" WHERE `name`='" + u.getName() + "'");
            }
            else {
                sbg.append("UPDATE `DMGuilds_users` SET ");
                sbg.append("`guild`=NULL");
                sbg.append(" WHERE `name`='" + u.getName() + "'");
            }
            this.conn.createStatement().executeUpdate(sb.toString());
            this.conn.createStatement().executeUpdate(sbu.toString());
            this.conn.createStatement().executeUpdate(sbg.toString());
            ++saves;
        }
        final List<Guild> guilds = GuildUtils.getGuilds();
        for (int j = 0; j < guilds.size(); ++j) {
            final Guild g = guilds.get(j);
            final StringBuilder sb3 = new StringBuilder();
            final StringBuilder sbu3 = new StringBuilder();
            final String members = StringUtils.toString(StringUtils.getUsersNames(g.getMembers()));
            final String mods = StringUtils.toString(StringUtils.getUsersNames(g.getMods()));
            final String treasureusers = StringUtils.toString(g.getTreasureplayers());
            final String alliances = StringUtils.toString(StringUtils.getGuildsTags(g.getAlliances()));
            sb3.append("INSERT OR IGNORE INTO `DMGuilds_guilds` VALUES(");
            sb3.append("'" + g.getTag() + "',");
            sb3.append("'" + g.getName() + "',");
            sb3.append("'" + g.getOwner().getName() + "',");
            sb3.append("'" + treasureusers + "',");
            sb3.append("'" + members + "',");
            sb3.append("'" + mods + "',");
            sb3.append("'" + alliances + "',");
            sb3.append("'" + g.isPvp() + "',");
            sbu3.append("UPDATE `DMGuilds_guilds` SET ");
            sbu3.append("`name`='" + g.getName() + "',");
            sbu3.append("`owner`='" + g.getOwner().getName() + "',");
            sbu3.append("`treasureusers`='" + treasureusers + "',");
            sbu3.append("`members`='" + members + "',");
            sbu3.append("`mods`='" + mods + "',");
            sbu3.append("`alliances`='" + alliances + "',");
            sbu3.append("`pvp`='" + g.isPvp() + "';");//TUTAJ
            sbu3.append(" WHERE `tag`='" + g.getTag() + "'");
            this.conn.createStatement().executeUpdate(sb3.toString());
            this.conn.createStatement().executeUpdate(sbu3.toString());
            if (g.getInv() != null) {
                this.conn.createStatement().executeUpdate("INSERT OR IGNORE INTO `DMGuilds_treasure` VALUES('" + g.getTag() + "','" + g.getInv().getItemsString() + "')");
                this.conn.createStatement().executeUpdate("UPDATE `DMGuilds_treasure` SET `items`='" + g.getInv().getItemsString() + "' WHERE `tag`='" + g.getTag() + "'");
            }
            ++savesg;
        }
        this.closeConnection();
        ClansPlugin.instance.getServer().getConsoleSender().sendMessage("Saved " + saves + " Users!");
        ClansPlugin.instance.getServer().getConsoleSender().sendMessage("Saved " + savesg + " Guilds!");
    }

@MarcinWieczorek

Opublikowano
13 minut temu, KarmelowyLozor napisał:

Jakieś błędy ? mógłbyś trochę dokładniej opisać problem.... bo z samego kawałka kodu nawet nie ruszy się pluginu

[22:16:43] [Server thread/WARN]: java.sql.SQLException: near "WHERE": syntax error
[22:16:43] [Server thread/WARN]: 	at org.sqlite.NativeDB.throwex(NativeDB.java:210)
[22:16:43] [Server thread/WARN]: 	at org.sqlite.NativeDB._exec(Native Method)
[22:16:43] [Server thread/WARN]: 	at org.sqlite.Stmt.executeUpdate(Stmt.java:152)
[22:16:43] [Server thread/WARN]: 	at xPLUGIN.data.SQL.save(SQL.java:183)
[22:16:43] [Server thread/WARN]: 	at xplugi.data.SQL.saveData(SQL.java:94)
[22:16:43] [Server thread/WARN]: 	at xPLUGIN.ClansPlugin.onDisable(ClansPlugin.java:91)
[22:16:43] [Server thread/WARN]: 	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:318)
[22:16:43] [Server thread/WARN]: 	at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:356)
[22:16:43] [Server thread/WARN]: 	at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:431)
[22:16:43] [Server thread/WARN]: 	at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:424)
[22:16:43] [Server thread/WARN]: 	at org.bukkit.plugin.SimplePluginManager.clearPlugins(SimplePluginManager.java:465)
[22:16:43] [Server thread/WARN]: 	at org.bukkit.craftbukkit.v1_7_R4.CraftServer.reload(CraftServer.java:834)
[22:16:43] [Server thread/WARN]: 	at org.bukkit.Bukkit.reload(Bukkit.java:301)
[22:16:43] [Server thread/WARN]: 	at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23)
[22:16:43] [Server thread/WARN]: 	at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181)
[22:16:43] [Server thread/WARN]: 	at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:766)
[22:16:43] [Server thread/WARN]: 	at net.minecraft.server.v1_7_R4.PlayerConnection.handleCommand(PlayerConnection.java:1044)
[22:16:43] [Server thread/WARN]: 	at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:881)
[22:16:43] [Server thread/WARN]: 	at net.minecraft.server.v1_7_R4.PacketPlayInChat.a(PacketPlayInChat.java:28)
[22:16:43] [Server thread/WARN]: 	at net.minecraft.server.v1_7_R4.PacketPlayInChat.handle(PacketPlayInChat.java:65)
[22:16:43] [Server thread/WARN]: 	at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:189)
[22:16:43] [Server thread/WARN]: 	at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81)
[22:16:43] [Server thread/WARN]: 	at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:789)
[22:16:43] [Server thread/WARN]: 	at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:307)
[22:16:43] [Server thread/WARN]: 	at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:638)
[22:16:43] [Server thread/WARN]: 	at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:544)
[22:16:43] [Server thread/WARN]: 	at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628)

 

Opublikowano
[22:16:43] [Server thread/WARN]: java.sql.SQLException: near "WHERE": syntax error
[22:16:43] [Server thread/WARN]: 	at xPLUGIN.data.SQL.save(SQL.java:183)
[22:16:43] [Server thread/WARN]: 	at xplugi.data.SQL.saveData(SQL.java:94)
          
sbu3.append("`alliances`='" + alliances + "',");
sbu3.append("`pvp`='" + g.isPvp() + "';");//TUTAJ
sbu3.append(" WHERE `tag`='" + g.getTag() + "'");

Twoje zapytanie z tego fragmentu: 

... `alliances` = `string`, `pvp' = `boolean`; WHERE `tag` = `string` ...

 

Zapoznaj się z syntaxem SQL :) problem oznaczyłem na czerwono 

 

 

 

 

INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;

 

Opublikowano
11 minut temu, KarmelowyLozor napisał:

[22:16:43] [Server thread/WARN]: java.sql.SQLException: near "WHERE": syntax error
[22:16:43] [Server thread/WARN]: 	at xPLUGIN.data.SQL.save(SQL.java:183)
[22:16:43] [Server thread/WARN]: 	at xplugi.data.SQL.saveData(SQL.java:94)

          
sbu3.append("`alliances`='" + alliances + "',");
sbu3.append("`pvp`='" + g.isPvp() + "';");//TUTAJ
sbu3.append(" WHERE `tag`='" + g.getTag() + "'");

Twoje zapytanie z tego fragmentu: 


... `alliances` = `string`, `pvp' = `boolean`; WHERE `tag` = `string` ...

 

Zapoznaj się z syntaxem SQL :) problem oznaczyłem na czerwono 

 

 

 

 


INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;

 

czyli mam tylko usunac to "    ;    "?

Opublikowano

public class Main {

    public static void main(String[] args) {

        String def = "TEST";

        final StringBuilder sbu = new StringBuilder();

        sbu.append("UPDATE `DMGuilds_users` SET ");
        sbu.append("`rank` = '" + def + "', ");
        sbu.append("`kills` = '" + def + "', ");
        sbu.append("`deaths` = '" + def + "'; ");
        sbu.append(" WHERE `name` = '" + def + "'");

        System.out.println(sbu);

    }

}

 

żywcem wycięty fragment Twojego kodu, przeanalizuj zapytanie które zwraca i powtarzam zapoznaj się z SYNTAXEM SQL!

Opublikowano
5 godzin temu, pan ktosik napisał:

 Boże dajcie mi poprawiony kod a nie piszecie co zle robie, nie chce nauczyc sie tego sql tylko poprawiony kod, nie mam czasu teraz na myslenie

 

Czy to koncert życzeń ? nie trać czasu na pisanie na forum tylko myśl, nie dość, że plugin nie twój to jeszcze chcesz do niego kod bo masz jakieś zachcianki.

Jak nie masz czasu na myslenie, to nie rozwiążesz problemu ;)

Opublikowano
2 godziny temu, TheMajster napisał:

 

Czy to koncert życzeń ? nie trać czasu na pisanie na forum tylko myśl, nie dość, że plugin nie twój to jeszcze chcesz do niego kod bo masz jakieś zachcianki.

Jak nie masz czasu na myslenie, to nie rozwiążesz problemu ;)

Nie ogarniam baz danych typu mysql, i na razie nie mam zamiaru tego ogarniac, to co ze plugin nie mój? Od dawna jest na internecie

Opublikowano
21 godzin temu, pan ktosik napisał:

Nie ogarniam baz danych typu mysql, i na razie nie mam zamiaru tego ogarniac, to co ze plugin nie mój? Od dawna jest na internecie

Ta informacja powinna ci wystarczyć do rozwiązania problemu, że średnikiem kończy zapytanie. (średnik, dwukropek ale z przecinkiem na dole, inaczej ;)

No to co, że jest w necie, autor tego nie udostępnił pluginu, a jak udostępnił to może nie zezwolił na ingerencje w kod??

I małą lekcja polskiego dla ciebie, po cholere przed "i" Ci przecinek ?????

Opublikowano
            sbu3.append("UPDATE `DMGuilds_guilds` SET ");
            sbu3.append("`name`='" + g.getName() + "',");
            sbu3.append("`owner`='" + g.getOwner().getName() + "',");
            sbu3.append("`treasureusers`='" + treasureusers + "',");
            sbu3.append("`members`='" + members + "',");
            sbu3.append("`mods`='" + mods + "',");
            sbu3.append("`alliances`='" + alliances + "',");
            sbu3.append("`pvp`='" + g.isPvp() + "'");
            sbu3.append(" WHERE `tag`='" + g.getTag() + "'");

ogólnie to i tak jest tylko jedno zapytanie, więc nie potrzebujesz semicolona na końcu.

 

 

 

 

fKJeAI4.jpg

 

 

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...