我在mySQL中创建了下表(to_do): td_id(INT),td_day(INT),td_month(INT),td_year(INT),to_do(VARCHAR),td_done(布尔值)
td_id字段设置为自动增量模式
在NetBeans中运行以下代码时,我收到一条错误消息,指出“字段列表中的未知列'新年派对'”
有人可以告诉我如何让代码正常工作吗? 提前谢谢。
Connection conn1;
try{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/myproject?" +
"user=root&password=abcd";
conn1 = DriverManager.getConnection(url);
int datevar=31,monthar3=12,yearvar1=2012;
String data=”new year party”;
String strSQL = "INSERT INTO to_do(td_day,td_month,td_year,to_do,td_done) VALUES (“+datevar1+","+monthvar3+","+yearvar1+","+data+",0)";
Statement stmt1 = conn1.createStatement();
int StringrowsEffected = stmt1.executeUpdate(strSQL);
conn1.close();
}
catch ( Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
}
答案 0 :(得分:0)
字符串常量(因为你将查询字符串连接在一起)将需要在SQL中的任何地方使用单引号。您的查询在您尝试为to_do
列插入值的位置附近没有单引号,因此它失败。如果您能看到新添加的引号,则下面是正确的代码:
String strSQL = "INSERT INTO to_do(td_day,td_month,td_year,to_do,td_done) VALUES
(“+datevar1+","+monthvar3+","+yearvar1+", '"+data+"' ,0)";
答案 1 :(得分:0)
假设只有数字字段,您的第一个双引号(VALUES (“+datevar1+
)看起来不正常。请更正如下:
String strSQL = "INSERT INTO to_do(td_day,td_month,td_year,to_do,td_done)
VALUES ("+datevar1+","+monthvar3+","+yearvar1+","+data+",0)";
如果任何字段是文字类型,也会将单引号值('
)包裹在内。
e.g。如果to_do
是文本类型,那么
String strSQL = "INSERT INTO to_do(td_day,td_month,td_year,to_do,td_done)
VALUES ("+datevar1+","+monthvar3+","+yearvar1+",'"+data+"',0)";