我尝试使用preared语句向表中插入一个新值,但我获得了一个无法解决的语法错误。
Java代码:
String sql2 = "INSERT INTO Repondre VALUES ( ?, ?, ?, ?)";
preparedStatement = connection.prepareStatement(sql2);
preparedStatement.setInt(1, 1);
preparedStatement.setInt(2, 1);
preparedStatement.setInt(3,resultSet.getInt(1));
RadioButton rb = (RadioButton)q1.getSelectedToggle();
preparedStatement.setString(4,rb.getText().toLowerCase());
preparedStatement.executeUpdate(sql2);
错误代码:
java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '?, ?, ?, ?)' at line 1
我希望你能帮助我谢谢你。
我在这里看到了几个潜在的问题。首先,将SQL字符串传递给executeUpdate()
,这是不正确的。这是错误的,因为您要调用的方法的版本用于准备好的语句,并且它不接受任何输入参数(您正在调用语句
版本)。其次,您忽略了在表中列出插入数据的目标列。通常,应该始终明确列出插入中的所有列。将这两者结合起来,我们可以尝试以下更正版本:
String sql = "INSERT INTO Repondre (col1, col2, col3, col4) VALUES (?, ?, ?, ?)";
PreparedStatement ps = connection.prepareStatement(sql2);
ps.setInt(1, 1);
ps.setInt(2, 1);
ps.setInt(3, resultSet.getInt(1));
RadioButton rb = (RadioButton)q1.getSelectedToggle();
ps.setString(4, rb.getText().toLowerCase());
preparedStatement.executeUpdate(); // NO parameters here
注意:显式列出列很重要,因为您希望在正确的位置插入数据。有时,可能不列出列,并且您提到的数据碰巧都具有相同的类型。这可能会导致一个微妙的错误。
我一直得到的错误:- “您的SQL语法有错误;请查看与您的MariaDB服务器版本相对应的手册,以了解在第1行的“Password='evertonblues'Forename='Josh'lasname='Edmondson'='199'附近使用的正确语法。” 运行我的更新查询时出错。
我有以下查询和错误: 错误消息:
查询失败您的SQL语法中有一个错误;在第1行“comment_status='approved'ORDER BY comment_id desc”附近,请查看与您的MariaDB服务器版本相对应的手册中使用的正确语法 谢谢。
我正在phpMyAdmin中的存储过程下面运行: Mariadb/MySQL创建过程中的神秘错误 但这些答案都无济于事!
我不知道为什么会出现错误,我只是添加了一个新列。 更新错误!!!您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解第2行“从用户详细信息订单按供应商描述限制1选择*”附近使用的正确语法
嘿,我正在使用下面的代码创建一个名为user的表,其中包含一些外键 我认为这段代码是正确的,但它仍然会产生以下错误 这个代码真的正确吗?如果没有,我如何修复它?此代码的正确变体是什么?感谢您的帮助。 编辑:我正在phpmyadmin上测试此代码 问候。