【问题标题】:insert simple news with form to database- preserve <br>将带有表单的简单新闻插入数据库 - 保留 <br>
【发布时间】:2023-12-19 11:37:01
【问题描述】:

大家好, 这让我很难过。我有一个简单的表格,我将新闻复制/粘贴到我的数据库中以获取更多内容; 我无法实现nl2br 方法,因为我遇到了一些错误……也许是我缺少的东西。

这是我的表单中的代码,来自我的 Dreamweaver ...

$insertSQL = sprintf("INSERT INTO nwes (title, contentt, owner, `data`, hot) VALUES (%s, %s, %s, %s, %s)",
                   GetSQLValueString($_POST['title'], "text"),
                   GetSQLValueString($_POST['content'], "text"),
                   GetSQLValueString($_POST['owner'], "text"),
                   GetSQLValueString($_POST['data'], "date"),
                   GetSQLValueString($_POST['hot'], "text"));
  1. 我应该在哪里应用nl2br 函数?

  2. 另外,我有自己的文章,我希望能够将我的 Dreamweaver 中的所有源文本粘贴到此处,包括格式和其他标签。我不知道如何使用 html_entities 或 mysql_real_escape_string .. 或者您可能知道我的特定问题的另一种解决方案。

谢谢!

【问题讨论】:

    标签: php mysql formatting mysql-real-escape-string nl2br


    【解决方案1】:

    您遇到了什么样的错误?我不知道nl2br 是什么,但我假设你有一些mysql 错误。我相信你需要有引号: VALUES('%s','%s'...)

    这通常是我插入时出错的原因

    【讨论】:

    • 当我不使用标签时表单正在工作......该脚本非常适合插入简单的文本。
    【解决方案2】:

    nl2br 应该在输出数据时应用,而不是在存储时应用。

    当您将数据插入数据库时​​,您需要对其进行转义。我不确定 GetSQLValueString() 是什么或它返回什么,但您需要使用准备好的语句或 mysql_real_escape_string() 来避免 SQL 注入。

    编辑:看起来 GetSQLValueString(或者,至少是我从 Adob​​e 找到的版本)为您处理转义和引用数据。

    【讨论】:

    • 同意,通常最好以原始形式存储数据!