UPDATE MySQL表时转义HTML

I'm trying to escape the string bellow (Text + Youtube HTML IFrame): HTML Form to Database

$maq = TEXT  TEXT  TEXT  TEXT  TEXT  TEXT  TEXT  TEXT +
<iframe width="300" height="265" src="//www.youtube.com/embed/0Ek2ayXgniw" frameborder="0" allowfullscreen></iframe>

To Update a MySQL Table:

$sql = "UPDATE maquinas SET 
        maq = $maq,
        WHERE id = $id";
require 'connect.inc';
$sql_result = mysql_query ($sql,$connection) or die ();

I tried these following PHP functions before MySQL Update:

htmlentities($maq);
addslashes($maq);
htmlspecialchars();
mysql_real_escape_string($maq)  **this before $sql_result**

None escaped HTML.

How can I do it ?

dongnvwang8591
dongnvwang8591 我用PDO来解决这个问题。
大约 6 年之前 回复
doucan8049
doucan8049 你的问题不是很清楚,你试图逃避什么html:数据库,html输出等?在构建$sql字符串之前,应该使用mysql_real_escape_string()。顺便说一句,使用PDO或mysqli你可以使用预准备语句,你不必担心数据库转义。
大约 6 年之前 回复
dpbvpgvrhwxen3222
dpbvpgvrhwxen3222 需要注意的是,不推荐使用mysql_*,而是支持PDO或mysqli_*,两者都将正确处理此参数。确保您将HTML之类的内容存储在能够适合它的列中(如TEXT)
大约 6 年之前 回复

1个回答

You must use mysql_real_escape_string on $maq only (before merging the parameters into $sql). It prepares the values for the database. This means, it escapes all dangerous chars like ", ', etc. < and > are not affected, because they don't affect the mysql command.
BTW, you shouldn't use mysql_. It is deprecated. It's better to user mysqli_ or PDO.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问