gpt4 book ai didi

java - 对于某些字符串值插入文本失败,但对于其他字符串值则不会

转载 作者:搜寻专家 更新时间:2023-10-30 20:08:23 26 4
gpt4 key购买 nike

String addQuer = "INSERT INTO emaildata VALUES('" + email + "','" + fname + "','" + lname + "','" + subject + "','" + content + "')";
statement.execute(addQuer);

我有上面的代码将数据插入表中。我正在使用 MS Access 数据库。所有字段都是类型(长文本)。当我插入以下数据集时查询工作正常

  1. 电子邮件 = SALMAN MAJID
  2. 萨尔曼
  3. 马吉德
  4. 测试邮件
  5. 我叫萨尔曼。

但是当我在最后一个字段中使用以下数据集时,相同的查询会出错。错误是 Syntax error Missing Operator...。请不要介意这么长的文本,因为此文本给出了错误,所以我发布了整个文本。

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression ''Get the free Outlook app.

我们升级了 Outlook 应用程序,使其更快、更易于使用。无论您使用哪种电子邮件服务”。

  1. “Outlook.com”
  2. 不可用
  3. 不可用
  4. 立即下载:Outlook 应用
  5. 获取免费的 Outlook 应用。

    我们升级了 Outlook 应用程序,使其更快、更易于使用。无论您使用哪种电子邮件服务,Outlook 应用都可以让您做更多事情。

[下载 Outlook。] http://communication.microsoft.com/Key-6859501.C.ChVBd.C.K4.-.HJ67kt

字段 5 到此结束。上面的文字很长,但我无法粘贴整个文字。但错误在我发布的这段文字中。

最佳答案

您正遭受“SQL 注入(inject)”问题的困扰。包含单引号的文本(例如,“We've ...”)将导致您的 SQL 命令无效。您需要使用一个参数化查询,它看起来像这样:

String addQuer = "INSERT INTO emaildata VALUES (?,?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(addQuer);
ps.setString(1, email);
ps.setString(2, fname);
ps.setString(3, lname);
ps.setString(4, subject);
ps.setString(5, content);
ps.executeUpdate();

关于java - 对于某些字符串值插入文本失败,但对于其他字符串值则不会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40685608/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com