2011-04-19 43 views
0

我有一个html编辑器,我试图插入它生成的html到数据库中,然后在另一个页面中检索它是SQL表。 我正在使用一个带有asp 3.5的文本字段的表格。下面是代码:如何将编辑器中的html代码插入到MySQL数据库中?

MySqlConnection con = new MySqlConnection(@"Connection String ");//I've tested the connection string and its working fine 

MySqlCommand cmd = new MySqlCommand("INSERT INTO ins (tes) VALUES ('" + Editor1.Content + "')", con); 

con.Open(); 
cmd.ExecuteNonQuery(); 
con.Close(); 

这是我的错误:

您的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,以找到在'font-size:18pt;行高:115%;无论在线1

这是怎么做到的?提前致谢。

+0

你能更准确,并指出哪里出了问题?究竟 – Bruno 2011-04-19 10:32:23

回答

0

而你打开自己的SQL注入很多。来自用户的数据应该在数据库结束之前进行检查和消毒。

此外,使用ASP.NET,您需要从回发中删除任何HTML标记,因为框架检查来自浏览器的可能的HTML注入。

删除标记(或者被什么东西取代<&lt;)和服务器转换回后,您可以使用类似:

MySqlCommand cmd = new MySqlCommand("INSERT INTO ins (tes) VALUES ('" + Editor1.Content.Replace("'", "''") + "')", con); 
con.Open(); 
cmd.ExecuteNonQuery(); 
con.Close(); 

虽然你应该做参数化查询。

+0

这个作品十分感谢 – Wahtever 2011-04-19 11:30:54

2

我认为你应该使用参数化查询而不是信任用户数据entry.please什么是tes类型,并且你能澄清什么是错误或异常?

+0

你能解释更多请和tes是一个文本 – Wahtever 2011-04-19 10:36:47

+1

我的意思是参数化查询保证没有SQL注入,并没有特殊字符的问题。 http://weblogs.asp.net/cumpsd/archive/2004/04/05/107456.aspx http://en.wikipedia.org/wiki/SQL_injection – 2011-04-19 10:49:42

+1

不知道它,谢谢你这是非常乐于助人 – Wahtever 2011-04-19 22:51:00

0

像这样的东西可能会奏效:

MySqlCommand cmd = new MySqlCommand("INSERT INTO ins (tes) VALUES (@text)", con); 

cmd.Parameters.Add("@text", SqlDbType.Text); 
cmd.Parameters["@text"].Value = txtTextField.Text; 

con.Open(); 
cmd.ExecuteNonQuery(); 
con.Close(); 
+0

得到这个错误**输入字符串的不正确的格式** – Wahtever 2011-04-19 11:02:40

+0

尝试'SqlDbType.Text' – 2011-04-19 11:33:48

+0

此代码为SQL Server – 2011-04-19 11:40:36

相关问题