Mysql “SQL-更改”;或';在SQL中,添加文本更容易
因此,我正在建立一个包含所有短信的数据库,以获取有关我的习惯的信息,而我在导入短信内容时遇到了困难。每当有撇号(通常)或引号(不像你想象的那么少)时,我就会遇到语法问题Mysql “SQL-更改”;或';在SQL中,添加文本更容易,mysql,sql,import,delimiter,Mysql,Sql,Import,Delimiter,因此,我正在建立一个包含所有短信的数据库,以获取有关我的习惯的信息,而我在导入短信内容时遇到了困难。每当有撇号(通常)或引号(不像你想象的那么少)时,我就会遇到语法问题 有没有一种方法可以让MySQL使用“或”以外的东西来封装字符串(具体来说,字段是VARCHAR)。如果我可以在短信中使用~或其他一些很少使用的字符,我的生活会变得简单得多。最好使用参数化查询,然后数据库连接器会以正确的方式将字符串发送到数据库 如果需要通过将值连接到查询中来构建查询,则需要正确地转义字符串,使其成为SQL代码中的
有没有一种方法可以让MySQL使用“或”以外的东西来封装字符串(具体来说,字段是VARCHAR)。如果我可以在短信中使用~或其他一些很少使用的字符,我的生活会变得简单得多。最好使用参数化查询,然后数据库连接器会以正确的方式将字符串发送到数据库 如果需要通过将值连接到查询中来构建查询,则需要正确地转义字符串,使其成为SQL代码中的字符串文字 对于字符串,请坚持使用一个分隔符,不要在某些字符串周围使用撇号,而在其他字符串周围使用求变标记,这只会使正确转义它们更加困难。我建议您使用撇号,因为这是SQL标准规定的 要将字符串正确转义为由撇号分隔的字符串文字,应:
- 用双反斜杠替换所有反斜杠,然后
- 用反斜杠和撇号替换所有撇号
成为带有反斜杠(\)的“示例”。
成为字符串文字,在查询中应如下所示:
insert into Table (txt) values ('It\'s an "example" with a backslash(\\).')
注意:这是MySQL转义字符串的正确方法。其他数据库可能会使用不同的字符进行转义,并且需要转义其他字符,因此在任何其他数据库中使用此方法可能会失败,甚至可能会导致SQL注入攻击。如果您使用带占位符的预处理语句,则不必关心我相信你正在使用的API会提供这些。不:MySQL甚至比SQL标准还要多。标准是单引号。你说的“带占位符的准备语句”是什么意思“?您是否手工编写每个SQL语句?通常使用Java、Perl、PHP、Python等编程语言。。。与数据库通信。我刚刚开始数据库和JavaGUI的工作。我想我明白你的意思了。我想在Java方面处理解析。很棒的东西。非常感谢你。