【发布时间】:2013-02-27 10:01:37
【问题描述】:
我收到以下错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:“字段列表”中的未知列“userId”
导致这个错误的代码是这样的:
PreparedStatement pstmt =
con.prepareStatement(
"INSERT INTO " +
tableName +
" (userId,username,email,password) VALUES (?,?,?,?)");
我的表是由以下命令创建的
stmt.executeUpdate(
"CREATE TABLE " +
tableName +
" (" +
" userId INT, " +
" userName VARCHAR(255) NOT NULL, " +
" email VARCHAR(255) NOT NULL, " +
" password VARCHAR(255), " +
" PRIMARY KEY(userId)" +
" )");
stmt.close();
如果有的话,谁能帮我找出我的错误。我是这方面的新手,所以我很难找到错误的确切位置。
【问题讨论】:
-
tableName是否包含您在准备声明时所期望的值? -
您的错误显示列名 userid 中的“i”很小。不应该是资本吗?
-
@ShashankKadne MySQL 列名不区分大小写,但表名通常是。 dev.mysql.com/doc/refman/5.0/en/…
-
是的。在调用准备语句之前,我尝试打印出 tableName 的值。它具有正确的值。
-
您是否验证过 create 语句确实成功了?您可能没有在数据库中拥有同名但列不同的表?
标签: java sql web-applications jdbc