我尝试使用 UPDATE 语句将日期更新到表中,但每次这样做都会出错。我尝试了多种方法,但仍然出现错误。这就是我正在尝试做的事情
public void updateTeacher(Teacher a)
{
int f = Integer.parseInt(a.getiD());
String query = "UPDATE teacher SET (NAME='" + a.getNaMe() + "' ADDRESS='" + a.getAddRess() + "' PHONE_NO="+ a.getPhOne() + " EMAIL='" + a.geteMail() + ") WHERE ID =" + f;
try
{
stmt.executeUpdate(query);
}
catch(SQLException e)
{
System.out.println("Problem in Query");
e.printStackTrace();
}
}
这样我得到以下错误
Problem in Query com.mysql.jdbc.exceptions.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 'ADDRESS='Lahore, Pakistan' PHONE_NO=2147483647 EMAIL='n.nadeem@bnu.edu.pk WHERE ' at line 1
请告诉我我哪里错了,并请更新声明。
最佳答案
首先,您根本不应该使用字符串连接,而应该使用参数化查询,因为连接会使代码变得困惑并导致 SQL 注入(inject)问题。
也就是说,代码中的另一个问题是您设置的值之间缺少逗号。应该是:
String query = "UPDATE teacher SET NAME='" + a.getNaMe() + "' , ADDRESS='" + a.getAddRess() + "' , PHONE_NO="+ a.getPhOne() + " , EMAIL='" + a.geteMail() + "' WHERE ID =" + f;
了解有关如何使用 prepared statements 的更多信息.
关于java - 执行更新语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31632508/