繁体   English   中英

“字段列表”中“ INSERT未知”列上的MySQL错误

[英]Mysql error on INSERT Unknown column in 'field list'

嗨,我在Java中使用MySQL时遇到错误。 每当我尝试插入到表中时(在下面运行“ testOne”时),我都会不断收到此未知列错误。

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;
}

但是,每当我运行测试时,都会收到此错误-“字段列表”中的未知列“消息”,请帮忙!

您收到哪一列错误? 我面临着类似的问题。 我在字符串“,”前后放置了空格,效果很好。 对于您的情况,请尝试在逗号前添加空格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM