[英]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> </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> </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> </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> </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> </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.