在 MySQL 中存储字符串
我有一个 C# 应用程序,它记录用户注释,其中可以包括各种标点符号,例如逗号、撇号、分号等。
目前,我正在让我的应用程序对字符串进行编码,并将它们作为基数 64 存储到数据库中。
有更好的办法吗?
仅供参考:我通过他们的 ODBC 驱动程序使用 MySQL
I've got a C# application which takes a users notes which can include various punctuation marks such as commas, apostrophes, semicolons etc.
At the moment I'm getting my application to encode the strings and storing them into the database as base 64.
Is there a better way?
FYI: I'm using a MySQL through their ODBC driver
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我猜你正在对它们进行编码,因为标点符号导致你的 SQL 更新/插入失败。
MySQL 不仅能够接受标点符号,因此您需要找到一种不同的方式。
相反,您应该使用参数化查询,a) 允许您使用标点符号,b) 避免 SQL 注入攻击的更大问题。
看一下这个网页,它着眼于查询数据库,但相同的技术也适用于插入/更新
http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson06.aspx
I'm guessing you are encoding them because the punctuation is causing your SQL update/insert to fail.
MySQL is more than capable of accepting punctuation so you need to find a different way.
Instead you should use parameterised queries which a) will allow you to use punctuation and b) avoid the much bigger issue of SQL injection attacks.
Have a look at this webpage which looks at querying your database but the same technique will work with inserts/updates
http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson06.aspx
如果您使用参数化查询,它将为您处理编码:
参数化查询
If you use parameterized queries it will handle the encoding for you:
Parameterized Queries