Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编辑mysql数据(参数索引超出范围(1>参数个数,为0))_Mysql_Parameters_Sql Update_Jbutton - Fatal编程技术网

编辑mysql数据(参数索引超出范围(1>参数个数,为0))

编辑mysql数据(参数索引超出范围(1>参数个数,为0)),mysql,parameters,sql-update,jbutton,Mysql,Parameters,Sql Update,Jbutton,我试图使我的程序能够编辑mysql数据库中的数据。这是将数据输入文本字段后执行操作的jbutton的代码。我希望用户在编辑时输入与他要编辑的行相同的“naziv”列 JButton btnEdituj = new JButton("Edituj"); btnEdituj.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try{

我试图使我的程序能够编辑mysql数据库中的数据。这是将数据输入文本字段后执行操作的jbutton的代码。我希望用户在编辑时输入与他要编辑的行相同的“naziv”列

JButton btnEdituj = new JButton("Edituj");
    btnEdituj.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            try{
                Class.forName("com.mysql.jdbc.Driver");
                Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/csprogram","root","");
                String query= "UPDATE `maticna ploca` SET `naziv`=value1,`socketi (socket1, socket2)`=value2,`chipset`=value3,`vga port`=value4,`RAM tip i MHz`=value5,`HDD`=value6,`Cijena (KM)`=value7,`Dodatno`=value8 WHERE 'naziv'=value1";              

                PreparedStatement pst=conn.prepareStatement(query);
                pst.setString(1, textField_1.getText());
                pst.setString(2, textField_2.getText());
                pst.setString(3, textField_3.getText());
                pst.setString(4, textField_4.getText());
                pst.setString(5, textField_5.getText());
                pst.setString(6, textField_6.getText());
                pst.setString(7, textField_7.getText());
                pst.setString(8, textField_8.getText());
            pst.execute();
            JOptionPane.showMessageDialog(null, "Data updated");
            pst.close();
            }
            catch (Exception d) {
                d.printStackTrace();
            }

尝试使用?而不是update语句中的value1作为参数占位符。然后它表示没有为参数9指定值。我有9个问号,只有8个textField.getTextCommand。我想当我写'naziv'列时,我需要为这两种情况编写相同的参数占位符。是这样吗?这就是为什么我使用value1而不是“?”您也可以使用命名参数,但它们可能需要格式:value1,带前导冒号。此外,还必须按名称设置这些参数。但我不清楚这在Java和JDBC中是如何工作的,所以我不能提供详细信息。如果你用这个?占位符,每个?映射到一个值,因此您必须添加一个额外的行来再次为最后一个参数设置相同的值:pst.setString9,textField_1.getText@GolezTrol没有错误,消息说数据已更新,但未更新。有什么想法吗?谢谢你,条件不对的地方引用了这句话naziv'=值1。这应该是backticks,否则仅当参数的值为'naziv'时才更新。