在PHP中
<input type="checkbox" name="CBage" id="cbage2" value="and age >= 18 and age <= 24" checked/><label for="cbage2">18-24</label>
value =&#34;年龄&gt; = 18且年龄<= 24&#34;
在php中发帖后(我已经尝试过)
$age1 = $_POST['CBage'];
$age = mysql_real_escape_string(implode(",", $age1));
或
$age = implode(",", $age1);
表格创建为
CREATE TABLE `jobs` (
`age` varchar(200) COLLATE utf8_unicode_ci
)ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
在mysql中,它插入为
INSERT INTO jobs VALUES ('$age')
插入的值如下
and age = 18 and age,and age = 25 and age,
问题在于它没有正确插入值(它缺少&gt;&lt;以及最后的一些文字)
"and age >= 18 and age <= 24" but rather it inserted as "and age = 18 and age,and age = 25 and age,"
答案 0 :(得分:0)
尝试使用htmlentities它将照顾所有特殊的字符'&lt;' (小于)成为'&lt;' '&GT;' (大于)成为'&gt;'然后在获取时使用html_entity_decode
来反转它 '<' (less than) becomes '<' '>' (greater than) becomes '>'
然后在获取时使用html_entity_decode
此外,重要的是停止使用Mysql_以避免严重的SQL注入危险 使用PDO或Mysqli准备好的陈述
$var1=htmlentities ($_POST['var1']) ;
$sth = $dbh->prepare('INSERT INTO table(field1) VALUES (?)');
$sth->bindParam(1, $var1, PDO::PARAM_STR);
$sth->execute();
取回
$sth = $dbh->query('SELECT * FROM table');
while($row = $sth ->fetch(PDO::FETCH_ASSOC)) {
echo html_entity_decode($row['field1']); //etc...
}