只是寻求一些帮助,
在JAVA中创建了一个应用程序并使用jTable从myphp数据库中收集数据,我正在使用Insert,update和delete SQL命令,以便用户能够操作表中的数据。
删除工作完美,但是我的更新和插入命令有些麻烦,只是想知道是否有人可以看到我是否正确使用(“'+)错误,我不像老鹰那样有经验的人,所以只是看看是否任何人都可以解释一下:)
谢谢!
INSERT CODE:
String query = "INSERT INTO `supplier`(`Company Name`, `Contact`, `Address`, `Postcode`, `Phone`) VALUES ('"+jTextField_SupplierCompany.getText()+"','"+jTextField_SupplierContact.getText()+"',"+jTextField_SupplierAddress.getText()+"','"+jTextField_SupplierPostcode.getText()+"',"+jTextField_SupplierPhone.getText()+")";
更新代码:
String query = "UPDATE `supplier` SET `Company Name`='"+jTextField_SupplierCompany.getText() + "',`Contact`='"+jTextField_SupplierContact.getText() + "',`Address`="+jTextField_SupplierAddress.getText() + "',`Postcode`="+jTextField_SupplierPostcode.getText() + "',`Phone`="+jTextField_SupplierPhone.getText() + " WHERE `ID` = "+jTextField_SupplierID.getText();
ERROR:
抛出的错误是在“UPDATE”语句中滥用WHERE子句......对某些人来说可能是显而易见的但是无法理解它。
答案 0 :(得分:4)
为了避免这些类型的语法错误或任何SQL注入,您可以使用PreparedStatement,它非常简单且非常有用:
String query = "INSERT INTO `supplier`(`Company Name`, `Contact`, `Address`, `Postcode`, `Phone`) "
+ "VALUES (?, ?, ?, ?, ?)";
try (PreparedStatement pstm = conn.prepareStatement(query)) {
pstm.setString(1, jTextField_SupplierCompany.getText());
pstm.setString(2, jTextField_SupplierContact.getText());
pstm.setString(3, jTextField_SupplierAddress.getText());
pstm.setString(4, jTextField_SupplierPostcode.getText());
pstm.setString(5, jTextField_SupplierPhone.getText());
pstm.executeUpdate();
}
您的错误发生是因为您忘记关闭字符串''
检查您的查询,您会看到:
+"', " + jTextField_SupplierAddress.getText() + "'
//--^--------------------------------------------^
答案 1 :(得分:0)
您错过了查询中的单引号
将其用于插入
字符串查询=“INSERT INTO supplier
(Company Name
,Contact
,Address
,Postcode
,Phone
)VALUES('”+ jTextField_SupplierCompany.getText()+ “ ' ' ”+ jTextField_SupplierContact.getText()+“', ' ”+ jTextField_SupplierAddress.getText()+“', ' ”+ jTextField_SupplierPostcode.getText()+“','” + jTextField_SupplierPhone。的getText()+ “')”;
使用此功能进行更新
字符串查询=“更新”供应商'SET'公司名称='"+jTextField_SupplierCompany.getText() + "',
联系='"+jTextField_SupplierContact.getText() + "',
地址='"+jTextField_SupplierAddress.getText() + "',
邮政编码='"+jTextField_SupplierPostcode.getText() + "',
电话='"+jTextField_SupplierPhone.getText() + "' WHERE
ID` ='“+ jTextField_SupplierID.getText()+ “'”;