代码之家  ›  专栏  ›  技术社区  ›  leora Matt Lacey

如何将HTML保存到数据库字段

  •  2
  • leora Matt Lacey  · 技术社区  · 15 年前

    我有一个 tiny editor 我的用户可以使用此编辑器的网页,我正在将HTML保存到我的数据库中。

    将此HTML保存到数据库时出现问题。例如,如果有一个带有“'”的名称,或者有其他HTML字符“<,,,>”等,则插入时我的代码似乎会爆炸。

    是否有任何关于采用任意HTML的最佳实践,并让它完全坚持到一个DB字段,而不必担心任何特定的字符。

    4 回复  |  直到 15 年前
        1
  •  6
  •   Jeff Siver    15 年前

    我想知道您是否正在构建完整的查询。而是使用参数化查询,这样可以消除数据问题。

    string sqlIns = "INSERT INTO table (name, information, other) VALUES (@name, @information, @other)";
    
    SqlCommand cmdIns = new SqlCommand(sqlIns, db.Connection);
    cmdIns.Parameters.Add("@name", info);
    cmdIns.Parameters.Add("@information", info1);
    cmdIns.Parameters.Add("@other", info2);
    cmdIns.ExecuteNonQuery();
    
        2
  •  2
  •   Andrey    15 年前

    插入时使用 SqlParameter ?如果是,你应该没有问题,检查一下。

        3
  •  0
  •   Russ Clarke    15 年前

    你只需对数据进行htmlencode。 您将拥有一个httpcontext.current.server对象,因此在伪代码中,您只需执行以下操作:

    Database.Save(HttpContext.Current.Server.HtmlEncode(myHtml));
    

    为了找回它:

    myHtml = HttpContext.Current.Server.HtmlDecode(DataBase.Load());
    
        4
  •  0
  •   Hal    15 年前

    只是看完这个-您的问题实际上是在insert语句上还是在Web服务器击中您的控制器之前从它那里得到了问题?注意到您用ASP.NET-MVC标记了这个问题,您可能需要确保已经用[validateInput(false)]属性修饰了控制器方法。