Php 更新MySQL表时转义HTML

Php 更新MySQL表时转义HTML,php,html,mysql,Php,Html,Mysql,我试图避开下面的字符串(Text+Youtube-HTML-IFrame): HTML表单到数据库 $maq = TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT + <iframe width="300" height="265" src="//www.youtube.com/embed/0Ek2ayXgniw" frameborder="0" allowfullscreen></iframe> 在MySQL更新之前,我尝试

我试图避开下面的字符串(Text+Youtube-HTML-IFrame): HTML表单到数据库

$maq = TEXT  TEXT  TEXT  TEXT  TEXT  TEXT  TEXT  TEXT +
<iframe width="300" height="265" src="//www.youtube.com/embed/0Ek2ayXgniw" frameborder="0" allowfullscreen></iframe>
在MySQL更新之前,我尝试了以下PHP函数:

htmlentities($maq);
addslashes($maq);
htmlspecialchars();
mysql_real_escape_string($maq)  **this before $sql_result**
没有一个逃脱了HTML


如何操作?

您必须仅在$maq上使用mysql\u real\u escape\u字符串(在将参数合并到$sql之前)。它为数据库准备值。这意味着,它可以逃避所有危险的字符,如“,”等。不会受到影响,因为它们不会影响mysql命令。

顺便说一句,你不应该使用mysql。它已被弃用。最好使用mysqli或PDO。

需要注意的是,mysql被弃用,取而代之的是PDO或mysqli。两者都将正确处理此参数。请确保将类似HTML的内容存储在一个能够匹配它的列中(如文本)您的问题不是很清楚,您试图转义html的目的是什么:数据库、html输出等?以及
mysql\u real\u escape\u string()
应该在构建
$sql
字符串之前使用。顺便说一下,使用PDO或mysqli,您可以使用prepared语句,而不必担心数据库转义。我使用PDO解决了这个问题。
htmlentities($maq);
addslashes($maq);
htmlspecialchars();
mysql_real_escape_string($maq)  **this before $sql_result**