gpt4 book ai didi

mysql - SQL - 在 SQL 中更改 "or ',以便更轻松地添加文本

转载 作者:行者123 更新时间:2023-11-29 12:48:38 27 4
gpt4 key购买 nike

因此,我正在构建所有短信的数据库,以获取有关我的习惯的信息,但我在导入消息内容时遇到了问题。每当有撇号(经常)或引号(并不像你想象的那么罕见)时,我就会遇到语法问题。

有没有办法让 MySQL 使用“或 ' 以外的其他字符来封装字符串(具体来说,该字段是 VARCHAR)。如果我可以在短信中使用 ~ 或其他一些很少使用的字符,我的生活将变得一切变得更加容易。

最佳答案

最好使用参数化查询,然后数据库连接器负责以正确的方式将字符串发送到数据库。

如果需要通过将值连接到查询中来构建查询,则需要正确转义字符串以使它们成为 SQL 代码中的字符串文字。

坚持使用一个字符串分隔符,不要在某些字符串周围使用撇号,在其他字符串周围使用引号,这只会让正确转义它们变得更加困难。我建议您使用撇号,因为这是 SQL 标准指定的。

要将字符串正确转义为由撇号分隔的字符串文字,您应该:

  • 将所有反斜杠替换为双反斜杠,然后
  • 将所有撇号替换为反斜杠和撇号

例如,要将字符串 It's an "example"with a backslash(\). 转换为字符串文字,它在查询中应如下所示:

insert into Table (txt) values ('It\'s an "example" with a backslash(\\).')

注意:这是 MySQL 转义字符串的正确方法。其他数据库可能使用不同的字符进行转义,并且需要其他字符进行转义,因此将其用于任何其他数据库可能会失败,甚至更糟糕的是会遭受 SQL 注入(inject)攻击。

关于mysql - SQL - 在 SQL 中更改 "or ',以便更轻松地添加文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25069568/

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