Asp.net 如何将编辑器中的html代码插入MySQL数据库?
我有一个html编辑器,我正在尝试将它生成的html插入数据库,然后在另一个页面中检索它,其中是SQL表我在asp 3.5中使用带有一个文本字段的表。代码如下:Asp.net 如何将编辑器中的html代码插入MySQL数据库?,asp.net,mysql,html-editor,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 I
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服务器版本对应的手册,了解使用near'字体大小:18pt;线高:115%;字体系列:“arial”、“无衬线”;“>1号线有什么
如何做到这一点?提前感谢。我认为您应该改用参数化查询,并且永远不要信任用户数据输入。请询问
tes
的类型,您能澄清错误或异常是什么吗?并且您会面临大量SQL注入。来自用户的数据应该在进入数据库之前进行检查和消毒
此外,使用ASP.NET,您需要从回发中删除任何HTML标记,因为框架会检查来自浏览器的可能HTML注入
移除标记(或替换
后,类似的操作可能会起作用:
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();
你能更准确地指出哪里出了问题吗?请你解释一下,tes是一个文本我的意思是参数化查询保证没有sql注入,特殊字符没有问题。是的,你可以对mysql使用类似的代码(参数化查询),只是语法会有点不同,它们使用(?)
而不是(@)
,以指示这是一个参数。
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();