2013-11-28 3 views
0

Привет У меня ошибка с использованием MySQL в Java. Я продолжаю получать эту неизвестную ошибку столбца каждый раз, когда я пытаюсь вставить в свою таблицу (когда я запускаю «testOne» ниже).Ошибка Mysql на INSERT Неизвестный столбец в 'списке полей'

public static void sendMessage(String username, String recipientName, String message, String title) {     
    DateFormat dateFormat = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss");     
    Date date = new Date();     
    String stringDate = dateFormat.format(date);     
    String query = "INSERT INTO messages" + " (fromUser, toUser, message, title, dateCreated) VALUES ('" + 
    username + "', '" + recipientName + "', '" + message + "', '" + title + "', '" + stringDate + "')";         
    DBConnection.getInstance().executeQuery(query);     
} 

public void testOne(){ 
    Message.sendMessage("user1", "user2", "hows it going", "hi"); 
} 

CREATE TABLE messages (
    id int AUTO_INCREMENT, 
    fromUser varchar(255), 
    toUser varchar(255), 
    mType int, 
    message TEXT, 
    title TEXT, 
    dateCreated varchar(255), 
    seen TINYINT(1), 
    quizID int, 
    PRIMARY KEY(pID) 
); 

public ResultSet executeQuery(String query){ 
    ResultSet rs= null; 
    try { 
     java.sql.Statement stmt = connection.createStatement(); 
     // this is the trick -- you need to pass different SQL to different methods 
     if (query.startsWith("SELECT")) { 
      rs = stmt.executeQuery(query); 
     } else if (query.startsWith("UPDATE") || query.startsWith("INSERT") 
       || query.startsWith("DELETE")) { 
      stmt.executeUpdate(query, Statement.RETURN_GENERATED_KEYS); 
      rs = stmt.getGeneratedKeys(); 
     } else { 
      stmt.execute(query, Statement.RETURN_GENERATED_KEYS); 
      rs = stmt.getGeneratedKeys(); 
     } 
    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     return null; 
    } 
    return rs; 
} 

public static DBConnection getInstance() { 
    if (instance == null) 
     instance = new DBConnection(DBConnection.rootDirectory); 
    return instance; 
} 

Но я получаю эту ошибку каждый раз я бегу испытательно Неизвестный столбец «сообщение» в «списке поля» Пожалуйста, помогите !!!

+0

Когда я распечатываю запрос, он выглядит так: сообщения INSERT INTO (fromUser, toUser, message, title, dateCreated) VALUES ('user1', 'user2', 'hows it going', 'hi', ' 2013: 11: 28 13:39:32 ') – user2057841

+0

Что делать, если сообщение содержит одну цитату? Узнайте о подготовленных операциях. –

+0

Пожалуйста, помогите мне просто вставить в мой стол. Сообщение не будет содержать кавычек. – user2057841

ответ

0

В какой колонке вы получаете сообщение об ошибке? Я столкнулся с подобной проблемой. Я разместил пространство до и после «,» в значениях String, и это получилось хорошо. В вашем случае попробуйте добавить пространство перед запятой.

Смежные вопросы