java - 插入数据库时​​准备好的语句中出现语法错误

标签 java

您好,我正在尝试使用准备好的语句将数据插入数据库,但出现语法错误,您可以帮忙吗

public boolean SignUp(String last_name, String first_name,String email, String password,String confirm_password,String phone){



        Connect connect = new Connect();
        Connection conn = connect.Connection();

        java.sql.PreparedStatement preparedStatement = null;
        //NULL is the column for auto increment
        String insertQuery = "INSERT INTO users VALUES (NULL, ?, ?, ?, ?, ?, ?)";
        preparedStatement = conn.prepareStatement(insertQuery);
        preparedStatement.setString(1, last_name);
        preparedStatement.setString(2, first_name);
        preparedStatement.setString(3, email);
        preparedStatement.setString(4, password);
        preparedStatement.setString(5, confirm_password);
        preparedStatement.setString(6, phone);

        int rs = preparedStatement.executeUpdate(insertQuery);

        conn.close();

}

这是错误消息

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?, ?, ?, ?, ?, ?)' at line 1

最佳答案

我找到了答案:)

使用preparedStatement.execute()而不是executeUpdate(sql)。您已经设置了 sql 和参数 -executeUpdate(sql) 中的新设置将覆盖绑定(bind)。

关于java - 插入数据库时​​准备好的语句中出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11675135/

相关文章:

java - SwitchCompat setTextOn() 和 setTextOff() 在运行时不起作用

java - 从asynctask捕获android java相机

java - 如何将字符串列表转换为对象列表?

java - 当 Java 需要 JVM 来运行时,它是如何独立于平台的?

java - java linux 中 http 包导入错误

java - Android 位图/字节数组内存泄漏

java - 单击一个菜单即可更改所有 Activity 的语言

java - 事件派发线程与逻辑线程分离,防止UI阻塞

org.hibernate.ejb.criteria.predicate.ComparisonPredicate.render 处的 java.lang.NullPointerException

java - Apache POI - 如何为 xlsx 创建工作簿