0

我在使用 MYSQL 在 java 中创建文件时遇到了一个奇怪的问题。

我的代码:

String lChildSql = this.lSQLBucket.select("get.child.by.name")
                        .replace("LEFT").with(lLeft)
                        .replace("RIGHT").with(lRight)
                        .replace("LEVEL").with(lLevel + 1)
                        .replace("NAME").with(pName).get()
                    ResultSet lChildRs = lDB.Qry(lChildSql);

示例:如果我使用 pName raj'sek'har 创建一个文件,并且它会自动创建为 raj"sek"har。

请帮我解决这个问题。

问候,

拉吉

4

1 回答 1

1

用户未知的意思是这是正常行为。这就是 sql 如何处理单词中的单引号(撇号)。

sql 对字符串使用单引号 - 'this is a string'- 但如果您的字符串包含单引号,则会导致问题 - 'this isn't going to work'- 因为字符串“提前结束”。

所以 sql 所做的就是用两个单撇号替换它,这是一个“转义序列”,表示实际上需要一个单撇号 [sic] 'this''ll work fine':.

请注意,这仅用于显示。它不是“真正”替换任何东西,当您检索数据时,一切都会好起来的。

别人说同样的话

于 2012-03-13T12:05:37.493 回答