我有一个delphi应用程序,它将MySQL查询发送到我们的服务器。以下查询失败
INSERT INTO `KPT`.`Internalorders`
(`InternalOrderId`, `UserId`, `Text`, `MailSent`,
`Done`, `PartlyDone`, `Ordered`)
VALUES (0, NULL, '- Teststring -- Teststring -', NULL, 1, 1, 1)
出现此错误消息:
MySQL错误代码:(1064) 您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在#39;' - Teststring'附近使用正确的语法。在第1行
看起来字符串在我用于数据库访问(MySQLDAC)和表单的第三方组件内部进行wordwrapped
'- Teststring
-- Teststring -'
这将导致将第二部分视为评论。因为我没有可能改变第三方工具,我希望这是一种逃避双连字符的方法。
有吗?
答案 0 :(得分:4)
您可以使用参数解决此问题,它将带来几个巨大的优势:
所以你的查询变为:
INSERT INTO `KPT`.`Internalorders`
(`InternalOrderId`, `UserId`, `Text`, `MailSent`,
`Done`, `PartlyDone`, `Ordered`)
VALUES (0, NULL, :Text, NULL, 1, 1, 1)
通过Params
对象分配Text
参数或在查询对象上使用ParamByName
方法并执行它。