如何保存文本框中带引号的文本以访问数据库


大家好,
我正在开发一个应用程序,允许用户用文本填写表单。
因此我使用文本框。
我可以将文本框中包含的数据保存到 Access 数据库,但当文本包含单引号 (‘) 或双引号 (“) 时会出现问题。

我该如何解决这个问题?

谢谢

我尝试过的:

使用 Texbox1.Text 不起作用,因为引号出现在 SQL 命令中并被解释为命令的一部分而不是数据

解决方案1

如果您的数据包含单引号和双引号的混合,请将要在字符串中保存的引号类型加倍。

SQL
UPDATE MyTable SET MyField = "This string ''has double quotes''."
UPDATE MyTable SET MyField = '"This string "has single quotes'."

解决方案2

引用:

我可以将文本框中包含的数据保存到 Access 数据库,但当文本包含单引号 (‘) 或双引号 (“) 时会出现问题。

这可能与您尝试保存文本的方式有关。
您应该阅读有关 SQL 注入漏洞的内容。

切勿通过连接字符串来构建 SQL 查询。 迟早,您将通过用户输入来完成此操作,这为名为“SQL注入”的漏洞打开了大门,它对您的数据库来说是危险的并且容易出错。
名称中的单引号会使您的程序崩溃。 如果用户输入像“Brian O’Conner”这样的名称可能会使您的应用程序崩溃,这是一个 SQL 注入漏洞,而崩溃是最不重要的问题,是恶意用户输入,并将其提升为具有所有凭据的 SQL 命令。
SQL 注入 – 维基百科[^]
SQL注入[^]
SQL 注入攻击示例[^]
PHP:SQL 注入 – 手册[^]
如何在不使用技术术语的情况下解释 SQL 注入? – 信息安全堆栈交换[^]

コメント

タイトルとURLをコピーしました