注册符号杀了我

时间:2013-11-07 16:50:30

标签: php html mysql

我的数据库中有一个包含类似Intel®

的文本的单元格

我还有一个值为Intel®

的复选框

因此,当我将查询中的复选框值发送给php时,查询最终会像这样
SELECT something from products WHERE company="Intel(®)";
我将'Intel®'放在我的数据库中,因为在其他地方我正在回应它,所以我希望你能理解正在发生的事情

复选框的值再次为Intel®,但当我将此值放入查询时,查询最终会如此SELECT * from products WHERE company="Intel(®)"

3 个答案:

答案 0 :(得分:4)

在您发送到SQL语句的字符串上,首先将其传递给htmlentities

答案 1 :(得分:0)

首先看一下PHP手册:

<?php
$orig = "I'll \"walk\" the <b>dog</b> now";
$a = htmlentities($orig);
$b = html_entity_decode($a);
echo $a; // I'll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now
echo $b; // I'll "walk" the <b>dog</b> now

答案 2 :(得分:0)

复选框的值是“英特尔®”而非“英特尔&amp; reg;”。

“&安培; REG;”只是在HTML中表示®符号的一种方式。如果您希望该值为“Intel&amp; reg;”你需要使用“&amp; amp;”

来逃避&符号

将html编码值存储在数据库中会导致各种类似的问题,因此我会考虑是否需要存储转义值。