搜索字符串并在表中插入值

Posted

技术标签:

【中文标题】搜索字符串并在表中插入值【英文标题】:search string and insert value in table 【发布时间】:2020-02-16 11:06:21 【问题描述】:

我的表格有以下记录。以下产品描述由用户在文本框中给出 前端(asp.net)。产品描述会带有单引号或双引号。我想插入表格中。那么如何检查是否存在单引号或双引号 表格中的输入和插入值。请帮忙。

String s=教科书

CREATE TABLE Product_Details(Product_Description varchar(50))

    Required Output

    Product_Description
    -------------------
    STORE('COVERED)
    STEEL("ROOFED)

以上两个字符串的插入语句会不同吗?

【问题讨论】:

【参考方案1】:

我不确定您到底在寻找什么。您应该能够毫无问题地存储带引号或双引号的文本(注意,我在 Postgresql 9.4 上进行测试,没有 9.2)。 问题有时是用单引号创建文本。在这些情况下,通常有两个单引号,例如 insert into product_details values ('STORE(''COVERED)') 双引号 (") 应该不是问题。您可以使用语法 E'STORE(\'COVERED)' 代替两个引号。有时更具可读性。

如果你只是想检查输入中是否有'或“”,这个检查很方便:

select length(replace(product_description,'''',''))!=length(product_description),   
length(replace(product_description,'"',''))!=length(product_description)

它返回真/假列,告诉第一列的字符串中是否存在单引号,后一列中是否存在双引号。

要删除字符串中的引号,您可以这样做:select replace(replace(product_description,'"',''),'''','')

最好的问候, 比亚尼

【讨论】:

不要用字符串连接构建你的SQL语句,确保你绑定了变量。这样,单引号或双引号或它们的任何组合只会成为 SQL 引擎使用的值,而不是语句的一部分。 (也可以防止 SQL 注入。)另外,语句没有区别,实际上它是相同的语句。每日提示:升级您的 Postgers 版本支持/更新,即使是针对安全漏洞,因为它已于 2017 年 11 月结束。

以上是关于搜索字符串并在表中插入值的主要内容,如果未能解决你的问题,请参考以下文章

在表中存储整数而不是实际字符串的优点/缺点

使用 select 语句在表中插入

在表中插入带引号和不带引号的字符串部分

在 NSMutableArray 中搜索字符串以显示在表中

如何使用sql在表中插入数据类型为BLOB的8796字符长数据?

使用语句在表中插入java字节数组