【问题标题】:how to insert HTML code into DB using php如何使用 php 将 HTML 代码插入数据库
【发布时间】:2014-08-29 03:29:17
【问题描述】:

我想用新的 html 代码更新我的数据库 这就是查询:

UPDATE `Pages` SET `content`= '<div id="intro">
<div id="about" align="left">
<h2 class="bigHeader" dir="rtl"HEADER</h2>
<img src="img/Med-logo.png" alt="" />
<div id="wellcomePage" class="text-left text" dir="rtl">
<p>...some words....</p>
<p>.some words....</p>
<p>&nbsp;</p>
</div>
</div>
</div>' 

但我总是遇到错误。 我怎样才能更新我的数据库,我不知道这个 html 代码里面会有什么,有没有一个函数可以让所有的代码像字符串一样没有特殊符号?

编辑:: 问题在于特殊字符,例如“我无法更改 html 代码,用户可以这么说。

【问题讨论】:

标签: php html mysql


【解决方案1】:

使用addslashes() 函数进行以下操作,这样可以轻松将更新的html插入到

UPDATE `Pages` SET `content`= addslashes('<div id="intro">
<div id="about" align="left">
<h2 class="bigHeader" dir="rtl"HEADER</h2>
<img src="img/Med-logo.png" alt="" />
<div id="wellcomePage" class="text-left text" dir="rtl">
<p>...some words....</p>
<p>.some words....</p>
<p>&nbsp;</p>
</div>
</div>
</div>') 

【讨论】:

  • 但是当我从数据库读回时,我需要添加“stripslashes”。 THX
  • 是的。从数据库中检索时,您必须添加斜杠。
【解决方案2】:

试试这个:- $htmlcode = mysql_real_escape_string($htmlcode);

例如:-

$htmlcode = '<div id="intro">
<div id="about" align="left">
<h2 class="bigHeader" dir="rtl"HEADER</h2>
<img src="img/Med-logo.png" alt="" />
<div id="wellcomePage" class="text-left text" dir="rtl">
<p>...some words....</p>
<p>.some words....</p>
<p>&nbsp;</p>
</div>
</div>
</div>';

$htmlcode = mysql_real_escape_string($htmlcode);

UPDATE `Pages` SET `content`= '$htmlcode';

【讨论】:

    【解决方案3】:

    将您的 html 内容存储在一个变量中,并在将其插入数据库时​​使用 addlashes()。

    $content='<div id="intro">
    <div id="about" align="left">
    <h2 class="bigHeader" dir="rtl"HEADER</h2>
    <img src="img/Med-logo.png" alt="" />
    <div id="wellcomePage" class="text-left text" dir="rtl">
    <p>...some words....</p>
    <p>.some words....</p>
    <p>&nbsp;</p>
    </div>
    </div>
    </div>';
    

    并按如下方式编写您的查询

    UPDATE `Pages` SET `content`=addslashes($content);
    

    希望对你有帮助:)

    【讨论】:

      【解决方案4】:

      我认为这可以解决问题

      Encode your text

      当您从数据库中取回文本时,只需将其解码回来

      【讨论】:

      • hmm 您尝试输入文本的列类型是什么?
      【解决方案5】:

      这可能与 this post 重复

      无论如何...这可能是您的解决方案

      $html = mysql_real_escape_string($html);
      $sql = "UPDATE `Pages` SET `content`= $html";
      

      【讨论】:

        【解决方案6】:

        我认为你的字符串中应该有一个 (') 单引号。

        您可以使用带有 ENT_QUOTES 作为第二个参数的 'htmlspecialchars' 函数。

        还可以使用'mysql_real_escape_string'函数。

        喜欢

        $hcode = '<div id="intro">
        <div id="about" align="left">
        <h2 class="bigHeader" dir="rtl"HEADER</h2>
        <img src="img/Med-logo.png" alt="" />
        <div id="wellcomePage" class="text-left text" dir="rtl">
        <p>...some words....</p>
        <p>.some words....</p>
        <p>&nbsp;</p>
        </div>
        </div>
        </div>';
        $hcode = htmlspecialchars($hcode, ENT_QUOTES);
        UPDATE `Pages` SET `content`= '$hcode';
        

        【讨论】:

          【解决方案7】:

          如果您可以在之前使用 PDO 准备语句然后插入数据,那就太好了。 你要插入的变量可以是任何东西,你不需要关心它们是否有 ' 或 " 或 ' " > 一切都很好,通过使用 prepare() 我们说我们将插入以下变量而不做任何更改。因此,即使您有代码或 sql 注入,无论如何它都会被视为文本。 您可以像这样进行 PDO 连接:

          $host = 'hostname';
          $user = 'duh_user';
          $password = 'duh_pwd';
          $dbname = 'myDatabase';
          
          $dsn = 'mysql:host='.$host.';dbname='.$dbname.';charset=utf8mb4';
          $pdo = new PDO($dsn, $user, $password);
          
          $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
          
          
          $column1 = $htmlcode;
          $column2 = $anything;
          $column3 = $reallyAnything;
          
          $query = "INSERT INTO table_name(column1, column2, column3) VALUES (?, ?, ?)";
          $stmt = $pdo->prepare($query);
          $stmt->execute([$column1, $column2, $column3]);
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-02-27
            • 1970-01-01
            • 2018-06-04
            • 2013-07-15
            相关资源
            最近更新 更多