MFC 插入MySQL记录出错

cky77 2019-09-11 03:38:44
MFC 程序里需要往MySQL插入一条记录。当字段内容末尾是“\\”的时候插入失败。同样的语句在MySQL WorkBench执行是没问题的。

程序里的语句是

Sql.Format("INSERT INTO history(HistoryTime,History_Sequence,History_Operator,historyStoragePath) VALUES('%s','%s','%s','D:\\1111222333\\')", Time, Name, Operator);


程序执行失败,去掉333后面的\\就执行正确。这个语句在MySQL WorkBench执行没问题。
不知道是什么道理,求教。
...全文
92 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2019-09-11
  • 打赏
  • 举报
回复
引用 5 楼 cky77 的回复:
[quote=引用 4 楼 zgl7903 的回复:] mySQL 中 '\\' 表示一个字符'\', C编译器也 '\\' 作为一个字符 '\', 等于进行了两次 就像 “\\?\” 这样的路径需要 "\\\\?\\\" 表示一样
哟西... “\\?\”应该是“\\\\?\\”这样吧?大佬是不是笔误了?[/quote]
cky77 2019-09-11
  • 打赏
  • 举报
回复
引用 4 楼 zgl7903 的回复:
mySQL 中 '\\' 表示一个字符'\', C编译器也 '\\' 作为一个字符 '\', 等于进行了两次
就像 “\\?\” 这样的路径需要 "\\\\?\\\" 表示一样

哟西...
“\\?\”应该是“\\\\?\\”这样吧?大佬是不是笔误了?
zgl7903 2019-09-11
  • 打赏
  • 举报
回复
mySQL 中 '\\' 表示一个字符'\', C编译器也 '\\' 作为一个字符 '\', 等于进行了两次 就像 “\\?\” 这样的路径需要 "\\\\?\\\" 表示一样
zgl7903 2019-09-11
  • 打赏
  • 举报
回复
试试用 'D:\\\\1111222333\\\\'
cky77 2019-09-11
  • 打赏
  • 举报
回复
把“D:\\1111222333\\”的“\\”换成“\\\\”就好了。插入数据库正常,结果也正常。插入的是‘D:\1111222333\’
可是不明白这是什么原理?接分的给解释下
cky77 2019-09-11
  • 打赏
  • 举报
回复

就是这个样子

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧