MySQL constant error

Discussion in 'Plugin Development' started by NoMansLand, Feb 14, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    NoMansLand

    Hello Bukkit,

    I am writing a plugin that will insert into a MySQL database for IP.Board if someone gets a warning

    but I keep on getting this error, Please note: I write mainly for PHP with MySQL and can fix 99% of the bugs on that, but this one the code is, as far as I can see is perfect, and has been referenced with other plugins i've done.

    code:

    Code:java
    1. if(args[1].equalsIgnoreCase("Spam")) {
    2. SimpleDateFormat dt = new SimpleDateFormat("dd-MM-yyyy");
    3. SimpleDateFormat td = new SimpleDateFormat("hh:mm:ss a");
    4. Date dtu = new Date();
    5. Date tdu = new Date();
    6. String theName = args[0];
    7. Connection con = null;
    8. try {
    9. con = DriverManager.getConnection("jdbc:REDACTED);
    10. String query = "SELECT * FROM topics WHERE title='" + theName + "' AND forum_id='99'";
    11. Statement stmt = null;
    12. ResultSet rs = null;
    13. stmt = con.createStatement();
    14. rs = stmt.executeQuery(query);
    15. if(rs.next() == true) {
    16. int tid = rs.getInt(1);
    17. sender.sendMessage("[Punishment] Attempting update");
    18. String query1 = "UPDATE topics SET last_poster_id='899' WHERE tid='" + tid + "'";
    19. stmt.executeUpdate(query1);
    20. sender.sendMessage("[Punishment] Update complete, starting insert");
    21. String query2 = "INSERT INTO posts (`pid`,`author_id`,`author_name`,`post`) VALUES ('" + tid + "','899','SYSTEM','<p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Username: " + theName + "</span></p><p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Action Taken: Warned</p></span><p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Reason for Action: Spamming via Message, Signs or Chat.</span></p><p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Time and Date of Event: " + dt.format(dtu) + " at " + td.format(tdu) + "</span></p><p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Server Address: " + server + "</span></p><p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Reported by: '" + issuer + "'";
    22. stmt.executeUpdate(query2);
    23. sender.sendMessage("§7Report Filed. Thank you for using Punishment records");
    24. } else {
    25. sender.sendMessage("[Punishment] Attempting Instert - Topic");
    26. String query1 = "INSERT INTO topics (`title`,`state`,`posts`,`starter_id`,`start_date`,`starter_name`,`last_poster_name`,`forum_id`,`approved`,`author_mode`,`title_seo`,`seo_last_name`,`seo_first_name`) VALUES ('" + theName + "','open','0','899','" + timestamp + "','SYSTEM','SYSTEM','99','1','1','" + theName + "','" + issuer + "','" + issuer + "');";
    27. stmt.executeUpdate(query1);
    28. sender.sendMessage("[Punishment] Attempting Data pull");
    29. String query2 = "SELECT * FROM topics WHERE title='" + theName + "'";
    30. ResultSet rs2 = null;
    31. rs2 = stmt.executeQuery(query2);
    32. if(rs2.next() == true) {
    33. int tid = rs2.getInt(1);
    34. sender.sendMessage("[Punishment] Attempting insert - post");
    35. String query3 = "INSERT INTO posts (pid,author_id,author_name,post) VALUES ('" + tid + "','899','SYSTEM','<p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Username: " + theName + "</span></p><p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Action Taken: Warned</p></span><p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Reason for Action: Spamming via Message, Signs or Chat.</span></p><p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Time and Date of Event: " + dt.format(dtu) + " at " + td.format(tdu) + "</span></p><p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Server Address: " + server + "</span></p><p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Reported by: '" + issuer + "";
    36. stmt.executeUpdate(query3);
    37. sender.sendMessage("[Punishment] Attempting update");
    38. String query4 = "UPDATE topics SET last_poster_id='899' WHERE tid='" + tid + "'";
    39. stmt.executeUpdate(query4);
    40.  
    41. }
    42. sender.sendMessage("§7Report Filed. Thank you for using Punishment records");
    43.  
    44. }
    45. } catch (SQLException e) {
    46. // TODO Auto-generated catch block
    47. e.printStackTrace();
    48. sender.sendMessage("§7I have failed my job. Please report to NoMansLand that i'm having a spaz attack.");
    49. }
    50. try {
    51. con.close();
    52. } catch (SQLException e) {
    53. // TODO Auto-generated catch block
    54. e.printStackTrace();
    55. }
    56. return true;


    Error Log:

    Code:
    [20:38:05] [Server thread/WARN]: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CONSOLE' at line 1
    [20:38:05] [Server thread/WARN]:    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    [20:38:05] [Server thread/WARN]:    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    [20:38:05] [Server thread/WARN]:    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    [20:38:05] [Server thread/WARN]:    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    [20:38:05] [Server thread/WARN]:    at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
    [20:38:05] [Server thread/WARN]:    at com.mysql.jdbc.Util.getInstance(Util.java:382)
    [20:38:05] [Server thread/WARN]:    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
    [20:38:05] [Server thread/WARN]:    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
    [20:38:05] [Server thread/WARN]:    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
    [20:38:05] [Server thread/WARN]:    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
    [20:38:05] [Server thread/WARN]:    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
    [20:38:05] [Server thread/WARN]:    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
    [20:38:05] [Server thread/WARN]:    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1662)
    [20:38:05] [Server thread/WARN]:    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1581)
    [20:38:05] [Server thread/WARN]:    at net.myfallen.punishment.commands.onCommand(commands.java:52)
    [20:38:05] [Server thread/WARN]:    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    [20:38:05] [Server thread/WARN]:    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:199)
    [20:38:05] [Server thread/WARN]:    at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:547)
    [20:38:05] [Server thread/WARN]:    at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchServerCommand(CraftServer.java:534)
    [20:38:05] [Server thread/WARN]:    at net.minecraft.server.v1_7_R1.DedicatedServer.aw(DedicatedServer.java:309)
    [20:38:05] [Server thread/WARN]:    at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:274)
    [20:38:05] [Server thread/WARN]:    at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:560)
    [20:38:05] [Server thread/WARN]:    at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:467)
    [20:38:05] [Server thread/WARN]:    at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617)
    
     
  2. Offline

    Wizehh

    1. PreparedStatements are better than Statements
    2. Can you please post line 52?
     
  3. Offline

    NoMansLand

    Line 52:
    Code:java
    1. String query1 = "UPDATE topics SET last_poster_id='899' WHERE tid='" + tid + "'";
    2.  
     
  4. Offline

    CubieX

    Code:
    String query2 = "INSERT INTO posts (`pid`,`author_id`,`author_name`,`post`) VALUES ('" + tid + "','899','SYSTEM','<p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Username: " + theName + "</span></p><p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Action Taken: Warned</p></span><p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Reason for Action: Spamming via Message, Signs or Chat.</span></p><p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Time and Date of Event: " + dt.format(dtu) + " at " + td.format(tdu) + "</span></p><p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Server Address: " + server + "</span></p><p><span style=\"color:rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;\">Reported by: '" + issuer + "'";
    You are missing the closing bracket of your VALUES statement.
    Also make sure you escaped all special characters to not mess up your query.
     
Thread Status:
Not open for further replies.

Share This Page