我有一个Mysql表checkboxsaved
。它有一个名为checked
的{{1}}类型的列。
此列的可能值为varchar(45)
,Check1
等。
接下来,我使用jQuery发送请求并将值作为GET变量传递。例如:
Check2
我在PHP中使用"http://xyz?checkbox=" + checkbox // checkbox = Check1
检索它,然后触发查询:
$checkbox = $_GET['checkbox']
未插入值。奇怪的是,当我在前面添加一个空格或其他字符时,例如
$rv = mysql_query("insert into checkboxsaved (checked) values ('$checkbox')");
然后插入值。谁能告诉我为什么会这样?据我说,
当列为$rv = mysql_query("insert into checkboxsaved (checked) values (' $checkbox')"); // space
$rv = mysql_query("insert into checkboxsaved (checked) values ('r$checkbox')");
时,我应该能够插入varchar
。
答案 0 :(得分:0)
我希望你做一些卫生设施。您应该对所有用户输入的值运行mysql_real_escape_string()
。此外,在您的情况下,您还可以对值运行正则表达式,使其与/^Check[0-9]+$/
匹配。
如果这不能解决您的问题(并且可能没有),您的脚本可能不会像您认为的那样接收数据。
即
$checkbox = mysql_real_escape_string($_GET['checkbox']);
$sql = "insert into checkboxsaved (checked) values ('$checkbox');";
//echo $sql; // uncomment this to debug
$rv = mysql_query($sql);