当前位置: 代码迷 >> java >> ExceuteUpdate语句
  详细解决方案

ExceuteUpdate语句

热度:17   发布时间:2023-07-17 20:15:07.0

我正在尝试使用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();
    }
}

有了这个我得到以下错误

查询com.mysql.jdbc.exceptions.MySQLSyntaxErrorException中的问题:SQL语法有错误; 检查与您的MySQL服务器版本对应的手册以获取正确的语法,以在第1行的“ ADDRESS =”巴基斯坦拉合尔”附近使用PHONE_NO = 2147483647 EMAIL='n.nadeem@bnu.edu.pk WHERE”

请让我知道我错在哪里,请更新声明。

首先,您根本不应该使用字符串连接,而应该使用参数化查询,因为连接会使代码混乱,并引发SQL注入问题。

就是说,代码中的另一个问题是设置的值之间缺少逗号。 它应该是:

String query = "UPDATE teacher SET NAME='" + a.getNaMe() + "' , ADDRESS='" + a.getAddRess() + "' , PHONE_NO="+ a.getPhOne() + " , EMAIL='" + a.geteMail() + "' WHERE ID =" + f;

阅读有关如何使用更多信息。

您的更新查询需要在每个“设置”项之后添加逗号,如下所示:

update teacher
   set name = 'teachersName',
       address = '123 st',
       phone = '800-555-5555',
       email = 'test@email.com'
           where id = 1;

String query = "UPDATE teacher SET NAME='" + a.getNaMe() + "', ADDRESS='" + a.getAddRess() + "', PHONE_NO="+ a.getPhOne() + ", EMAIL='" + a.geteMail() + " WHERE ID =" + f;

电话号码是什么数据类型? 如果它是varchar,也可能需要用单引号引起来

在各列之间放置a 并检查PHONE_NO列,例如,缺少'。

SET NAME='" + a.getNaMe() + "', ADDRESS='"
  相关解决方案