搜索字符串并在表中插入值
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 月结束。以上是关于搜索字符串并在表中插入值的主要内容,如果未能解决你的问题,请参考以下文章