2010-08-22 84 views
0

当我通过代码插入MySQL表一个特定的值,我得到异常(1064错误)问题,当插入“\”在MySQL表

我知道原因,但我不知道如何解决的问题,所有我想要做的就是将图像的相对路径存储在图像表中,然后当插入的字符串包含“\”或@“\”时,我总是得到这个异常。

我该如何解决这个问题

+0

你需要显示一些代码。插入数据之前,您是否会转义数据? – 2010-08-22 10:58:09

+0

这是导致问题的插入值 string dirPathToStored =“〜”+“\\”+“NewsFiles”+“\\”+“News Images”+“\\”+“Unit#”+ FK_UnitId。 ToString()+“_”+“News#”+ newsId +“\\”; – 2010-08-22 11:03:20

回答

2

你有可能将值直接嵌入到SQL中。不要这样做:使用参数化查询,这会使SQL代码与数据分离。这意味着您无需担心格式化值或SQL注入攻击,并可让您重复使用语句。

+0

什么我不知道如何使用参数化查询,但所有我想要解决的问题,我需要保存图像的路径,但我得到(1064)错误,当我使用“\\” – 2010-08-22 11:07:42

+2

@ just-name - 你*真的*应该学习,[参数化查询周围有成千上万的资源](http://www.google.com/search?q=.net+mysql+parameterized+queries)。 SQL注入是最容易被利用的攻击之一......为什么不一次解决2个问题?我保证他们真的很容易学习,看看一个[简单示例](http://www.programmingado.net/a-389/MySQL-NET-parameters-in-query.aspx) 。 – 2010-08-22 11:19:13

+0

你是对的,非常感谢你的帮助。 – 2010-08-22 11:19:52