php - 如何使用 php 和 mysql 在数据库中存储 html 元素(包括标签)?

标签 php mysql html

<分区>

我有一个带有一些文本的“div”标签和一个带有标题的“p”标签,我想存储这些元素及其内容,包括数据库中属于用户的标签。

使用 PHP 和 MySQL 存储“div”及其内容和“p”及其标题的最佳方法是什么?

这与存储用户评论及其标题的方式非常相似。

例子:

HTML

<p name="myTitle">This is my title</p>

<div name="myContent">
    This is a paragraph This is a paragraph 
    This is a paragraph This is a paragraph
</div>

请帮忙。

最佳答案

第 1 步,连接到数据库并告诉它我们正在使用的字符集。

try {
    $db = new PDO('mysql:host=HOSTNAME', 'USERNAME', 'PASSWORD', array(
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
    ));
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

第 2 步,插入到您的表中。

$sql = 'INSERT INTO table_name(p_column, div_column) VALUES(:p, :div)';
try {
    $sh = $db->prepare($sql);
    $sh->execute(array(
        ':p' => $VARIABLE_CONTAINING_P,
        ':div' => $VARIABLE_CONTAINING_DIV,
    ));
} catch (PDOException $e) {
    echo 'Insert failed: ' . $e->getMessage();
}

现在您知道如何将值插入数据库。您会注意到这里没有任何内容被明确转义。有两个原因:

  1. 作者 creating a prepared statementbinding parameters at execute time ,我们自动防止 HTML 中的恶意内容创建 SQL injection attack .
  2. 您正在存储 HTML。没有理由对您存储在此处的 HTML 进行编码或以其他方式破坏。它是 HTML。它旨在显示为 HTML,那么为什么要破坏它呢?但是,这并不意味着它是安全 HTML。如果是用户输入的 HTML,则可能是恶意的。您应该使用 HTML 过滤器,例如 HTML Purifier 您明确想要的内容。

希望这个曲折而牵强的答案将接近成为您模糊和未指定问题的解决方案。如果您可以提供有关您要完成的确切内容的更多详细信息(请参阅:The XY Problem),那么我可以为您提供更多有用的详细信息。

关于php - 如何使用 php 和 mysql 在数据库中存储 html 元素(包括标签)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13774119/

相关文章:

php - 用php和mysql做减法

php - 我如何在 cakephp 1.3 中使用独立类?

mysql - #1241 - 操作数应包含 1 列

php - 如何在变量中存储选择选项 onchange 并将其作为参数传递到单个 php 页面

java - 配置 Mule JPA 模块以使用 Eclipse Link 和 MySQL

mysql - 如何在忽略排序的情况下在 MySQL 中查询 SET 列?

javascript - 为什么我的 Bootstrap 导航栏不显示事件按钮?

html宽度大小写

javascript - 如何检测 div 是否在 bootstrap twitter 中使用滚动?

php - Array_merge 与 +