Php 更新MySQL表时转义HTML
我试图避开下面的字符串(Text+Youtube-HTML-IFrame): 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更新之前,我尝试
$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。它已被弃用。最好使用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**