使用$ _GET获取时未插入VARCHAR值

时间:2012-11-17 02:12:32

标签: php mysql

我有一个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

之类的内容

1 个答案:

答案 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);