如何将html内容插入到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)
答案 0 :(得分:1)
我猜你的查询中缺少“或”字符串值。
由于你的$ msg包含特殊字符,所以应该手动转义或使用mysql_real_escape_string函数进行转义。
$query_1="INSERT INTO content (htmk) values ('".mysql_real_escape_string($msg)."')";
顺便说一下,不推荐使用mysql_函数,为什么不使用PDO呢?
答案 1 :(得分:1)
请了解使用参数化查询,最好使用PDO模块。您不必完成其他答案所建议的所有编码hoohah。看到这个问题:How can I prevent SQL injection in PHP?问题是关于SQL注入,但使用参数化查询的原则是相同的。
答案 2 :(得分:0)
您可以在PHP中使用htmlentities函数将所有标记编码为其HTML等价物。 然后,您可以将结果字符串插入基于varchar或基于文本的列中。
在这里你可以找到如何: http://ca3.php.net/manual/en/function.htmlentities.php
答案 3 :(得分:0)
在数据库中插入HTML之前,尝试在字符串$msg
上应用htmlspecialchars()以放入数据库,然后在将其拉回时,使用htmlspecialchars_decode()。应该工作。