1

如何将 hmtl 内容插入 DB,下面是我正在尝试但不成功的代码。任何机构都可以帮助我如何做到这一点 - :

<?php    
$connect=mysql_connect("localhost","root","");
$db=mysql_select_db("send_mailer",$connect);
$msg= <<<HTMK
<html>
<body>
<table cellpadding='0' cellspacing='0' align='center'>
<tr>
<td align='center'><img src='http://d32vlg867bsa1v.cloudfront.net/z/prod/w/2/b/home-images/Sept/27092013/tops-l.jpg' /></td></tr>
<tr>
<td align='center'>
<img src='http://d32vlg867bsa1v.cloudfront.net/z/prod/w/2/b/home-images/Sept/19092013/row3-01-l.jpg' />
</td>
</tr>
<tr>
<td align='center'>
<img src='http://d32vlg867bsa1v.cloudfront.net/z/prod/w/2/b/home-images/Sept/27092013/shoes-l.jpg' />
</td>
</tr>
</table>
</body>
</html>
HTMK;
$query_1="INSERT INTO content (htmk) values ($msg)";
$result=mysql_query($query_1);
?>
DB table structure-:
1   htmk    varchar(5000)
4

4 回答 4

1

请了解如何使用参数化查询,最好使用 PDO 模块。您将不必像其他答案所建议的那样进行所有编码。看到这个问题:如何防止 PHP 中的 SQL 注入? 问题是关于SQL注入的,但是使用参数化查询的原理是一样的。

于 2013-09-30T21:33:00.547 回答
1

我猜它在您的查询中缺少 " 或 ' 围绕字符串值。

因为你的 $msg 包含特殊字符,它应该手动转义或使用 mysql_real_escape_string 函数。

$query_1="INSERT INTO content (htmk) values ('".mysql_real_escape_string($msg)."')";

顺便说一句,不推荐使用 mysql_ 函数,为什么不使用 PDO?

于 2013-09-29T17:44:59.447 回答
0

您可以使用 PHP 中的 htmlentities 函数将所有标签编码为它们的 HTML 等价物。然后,您可以将结果字符串插入基于 varchar 或基于文本的列中。

在这里您可以了解如何: http ://ca3.php.net/manual/en/function.htmlentities.php

于 2013-09-29T17:46:51.883 回答
0

在将 HTML 插入数据库之前,尝试 对要放入数据库的字符串应用htmlspecialchars()$msg,然后在将其拉出时,使用htmlspecialchars_decode()。应该管用。

于 2013-09-29T17:49:28.377 回答