Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何将编辑器中的html代码插入MySQL数据库?_Asp.net_Mysql_Html Editor - Fatal编程技术网

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

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

我有一个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服务器版本对应的手册,了解使用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();