Java 爪哇及;MySQL-列计数不为';不匹配第1行的值计数

Java 爪哇及;MySQL-列计数不为';不匹配第1行的值计数,java,mysql,Java,Mysql,我有一个问题,很高兴收到你的反馈。 在MySQL中更新我的表的数据时,出现以下消息: 列计数与第1行的值计数不匹配 表格如下: IdUsuariINT NOT NULL自动递增, 昵称VARCHAR(50)不为空, dataregister日期不为空, datadarreaccess日期不为空, numlistesINT非空默认值0, PasswordVARCHAR(10)不为空, AdminINT不为空, 主键(IdUsuari) 以及守则: public static void Regist

我有一个问题,很高兴收到你的反馈。 在MySQL中更新我的表的数据时,出现以下消息:

列计数与第1行的值计数不匹配

表格如下:

IdUsuari
INT NOT NULL自动递增,
昵称
VARCHAR(50)不为空,
dataregister
日期不为空,
datadarreaccess
日期不为空,
numlistes
INT非空默认值0,
Password
VARCHAR(10)不为空,
Admin
INT不为空, 主键(
IdUsuari

以及守则:

public static void RegistreUsuari(int port, String ip, String nickname, String password) throws SQLException{ /*Creem un usuari*/

        java.util.Date dt = new java.util.Date(); 



        Connection conn = getConnection(port,ip);
        Statement st = null;
        st = conn.createStatement();



        String query = new String();
        /*Data*/

        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");


        String currentTime = sdf.format(dt);
        query = "INSERT INTO usuari(Nickname, Password, DataRegistre, DataDarrerAcces, NumLlistes, Admin) VALUES('" + nickname +"','"+password+"','"+currentTime+"','"+currentTime+"',0)";
        st.executeUpdate(query); }


提前谢谢你

您正试图向一个包含6列的表中插入5个值。您没有为
numlistes
指定值

如果希望使用默认值,请不要在insert语句中指定
numlistes
列:

query = "INSERT INTO usuari(Nickname, Password, DataRegistre, DataDarrerAcces, Admin) VALUES('" + nickname +"','"+password+"','"+currentTime+"','"+currentTime+"',0)";

除了以明文形式存储密码通常是个坏主意之外,对于任何类型的用户输入,您都应该仔细研究
PreparedStatement
!我投票决定以离题的方式结束这个问题,因为您的查询中有6列6个值,这就是答案。@Hanky웃Panky我不认为这会偏离主题,它只是意味着问题就在这里,正如你在回答中所说的,你应该使用一个
预先声明
,更多信息请参阅details@Dragondraikk在我看来(可能是错误的),这只是一个打字错误,不是问题;因此,光听到了密切的投票。否则,如果您搜索此问题包含的错误消息,则确切地说,存在重复的问题,这本身就是一个足够大的接近原因。
query = "INSERT INTO usuari(Nickname, Password, DataRegistre, DataDarrerAcces, Admin) VALUES('" + nickname +"','"+password+"','"+currentTime+"','"+currentTime+"',0)";