如何将编辑器中的html代码插入MySQL数据库?

时间:2011-04-19 10:29:23

标签: asp.net mysql html-editor

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

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%; font-family:“arial”,“sans-serif”;'> Whatever'在第1行

如何做到这一点?提前谢谢。

3 个答案:

答案 0 :(得分:2)

我认为您应该使用参数化查询,并且永远不要信任用户数据条目。请问tes的类型是什么,您能否澄清什么是错误或异常?

答案 1 :(得分: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();

虽然您应该进行参数化查询。

答案 2 :(得分: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();