Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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
Java 此查询不起作用的原因是什么?获取:MySQLSyntaxErrorException未知列_Java_Sql_Jdbc - Fatal编程技术网

Java 此查询不起作用的原因是什么?获取:MySQLSyntaxErrorException未知列

Java 此查询不起作用的原因是什么?获取:MySQLSyntaxErrorException未知列,java,sql,jdbc,Java,Sql,Jdbc,客户表中的我的列 cusid cusname cusadress paidamount email cus123 damidu kegalle 45 adfff 这是我的Java查询 String query = "UPDATE `customer` SET `cusname`='"+jTextField_name.getText()+"',`cusadress`='"+jTextField_adress.getText()+"',`paidamount`='

客户表中的我的列

cusid  cusname cusadress paidamount  email

cus123  damidu   kegalle  45           adfff
这是我的Java查询

String query = "UPDATE `customer` SET `cusname`='"+jTextField_name.getText()+"',`cusadress`='"+jTextField_adress.getText()+"',`paidamount`='"+jTextField_amount.getText()+"',`email`="+jTextField_emailuser.getText()+" WHERE `cusid` = "+jTextField_id.getText();
executeSQlQuery(query, "Updated");
错误


此更新不起作用,但insert和delete语句起作用的原因是什么?

使用以下PreparedStatement:

String updateQuery = "UPDATE customer SET cusname=?,cusadress=?,paidamount=?,email=? WHERE cusid=?";

PreparedStatement stmt=con.prepareStatement(updateQuery); // con is reference variable of Connection class
        stmt.setString(1, jTextField_name.getText());
        stmt.setString(2, jTextField_adress.getText());
        stmt.setInt(3, jTextField_amount.getText());
        stmt.setString(4, jTextField_emailuser.getText());
        stmt.setString(5, jTextField_id.getText());

希望这有帮助。

1可能的SQL注入2使用参数绑定而不是连接SQL字符串3 cus123!='cus123'像这样使用preparedStatementquery是混乱的。尽量使用预先准备好的声明。@LucianovanderVeekens抱歉,也许是我,Alex似乎也这么做了,但看起来好像把WHERE cusid=改成了WHERE``cusid`=-可能是背景标记最初没有出现-如果是这样,请接受我的建议apology@ScaryWombat有用的注意事项:当查看具有更改等功能的编辑时,以并排标记方式查看编辑通常更有用非代码到代码,因为它只突出显示缩进,并显示相同的文本其余部分。在我看来,cusid不是数字,而是基于字符串的。但paidamount看起来像一个数字based@AlexK谢谢你的澄清。我想应该是数字的。我同意你的意见。这只是一句小小的话:谢谢你,先生,我会试试的that@DamiduRathnayaka当然
String updateQuery = "UPDATE customer SET cusname=?,cusadress=?,paidamount=?,email=? WHERE cusid=?";

PreparedStatement stmt=con.prepareStatement(updateQuery); // con is reference variable of Connection class
        stmt.setString(1, jTextField_name.getText());
        stmt.setString(2, jTextField_adress.getText());
        stmt.setInt(3, jTextField_amount.getText());
        stmt.setString(4, jTextField_emailuser.getText());
        stmt.setString(5, jTextField_id.getText());