我正在使用 MySQLDriverCS 将我的 C# 程序与 MySQL 数据库连接。
一切都很顺利,除了当我想运行插入/更新查询时,其中一个值包含 '
字符。
MySQL 希望使用单个 \
转义 '
字符,即 \'
但是我不能让 C# 允许我以同样的方式转义字符。当我尝试 \\'
时,它最终在数据库中显示为 \\' =>
查询失败并出现异常。
查询示例:
UPDATE products SET brand = 'L'Occitane', product = 'Test' WHERE id = 435
=> SQL 异常
尝试替换:
text = text.Replace("\'", "\\'");
UPDATE products SET brand = 'L\\'Occitane', product = 'Test' WHERE id = 435
=> SQL 异常
最佳答案
当你通过双倍转义文本字符串中的撇号而不是在它们前面加上反斜杠时,MySQL 会做得更好。
所以,试试这个。
UPDATE products SET brand = 'L''Occitane', product = 'Test' WHERE id = 435
但是你最好使用绑定(bind)变量。这样您就可以避免为应用程序的数据处理字符串转义的麻烦事。
Connector.NET 连接器可以很好地处理这种绑定(bind)变量。
关于C# MySQLDriverCS - 插入/更新中的“字符”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34377074/