我想用新的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代码里面会有什么内容,是否有一个函数可以使所有代码像字符串一样没有特殊符号?
EDIT :: 问题在于特殊字符如&#39;我无法改变html代码,用户是否可以使用它。
答案 0 :(得分:6)
使用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>')
答案 1 :(得分:4)
试试这个: - $ 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';
答案 2 :(得分:1)
将html内容存储在一个变量中,并在将其插入数据库时使用addslashes()。
$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);
希望这会对你有所帮助:)。
答案 3 :(得分:0)
答案 4 :(得分:0)
这可能是this post
的重复无论如何......这可能是你的解决方案
$html = mysql_real_escape_string($html);
$sql = "UPDATE `Pages` SET `content`= $html";
答案 5 :(得分:0)
我认为你的字符串中应该有一个(')单引号。
你可以使用'htmlspecialchars'函数和ENT_QUOTES作为第二个参数。
还可以使用'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';
答案 6 :(得分:0)
如果您可以在之前使用 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]);