C# MySQLDriverCS - 插入/更新中的“字符”

标签 c# mysql

我正在使用 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/

相关文章:

c# - 执行 SSL Pinning 时忽略 SslPolicyErrors 是否安全?

c# - Task.WhenAll 未完成

mysql - 从表中选择字段 - MYSQL JOIN

php - mysql加入: get all rows that matches the rows that matches notification type is zero

MySQL 与 +(search query) 的匹配不起作用,但 +search +query 是

c# - 期待xamarin Box-view颜色动态变化

c# - 如何使用索引器访问枚举项并将数组字符串分配给它以进行显示?

c# - 在WPF应用程序中触发scrollchanged事件

mysql - 年龄组之间的sql

PHP Zend 与 AWS ElastiCache