簡體   English   中英

如何使用 php 將 HTML 代碼插入到數據庫中

[英]how to insert HTML code into DB using php

我想用新的 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 代碼,用戶是否可以放置它。

使用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>') 

試試這個:- $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';

將您的 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);

希望能幫到你 :)

我認為這會解決問題

編碼您的文本

當您從數據庫中取回文本時,只需將其解碼回來

這可能是這篇文章的重復

無論如何......這可能是你的解決方案

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

我認為您的字符串中應該有一個 (') 單引號。

您可以使用帶有 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';

如果您可以在之前使用 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]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM