'
我只是在测试我的数据库,我意识到只要我的数据库中的文本条目包含一个字符(单引号),我就会遇到问题。我现在的解决方案是,在对字符串进行任何 .execute 操作之前,我调用escape(string, "'", " "'" ")
.
总结示例如下:
qr = "INSERT INTO tblExample VALUES ( " & "'" & me.testparam & "'" & ");"
qr = Replace(qr, "'", " "'" ")
db.execute qr
'also tried qr = "INSERT INTO tblExample VALUES ( " & "'" & replace(me.testparam,"'"," ") & "'" & ");"
这是我认为正确的解决方法,以防止诸如Tourette's
.
这有两个问题。首先,它不起作用。其次,我在整个应用程序中的代码中有 50 多个位置,我在其中调用语句 db.execute qr,其中 qr 是一个可能包含单引号的字符串。我需要表中的字段包含单引号,所以我不能只用空格或类似的东西替换它。
两部分问题:
有没有比通过我的所有代码调用
Replace
每个要作为查询执行的字符串更好的解决方案?为什么我当前的实施失败了?- 即使将单引号转义到空格,我仍然在查询表达式中遇到语法错误。