我有一个Mysql表,checkboxsaved。它有一个类型为varchar(45)的名为checked的列。
此列的可能值为Check1、Check2等。
接下来,我使用jQuery发送一个请求,并将值作为GET变量进行传递。例如:
"http://xyz?checkbox=" + checkbox // checkbox = Check1我在PHP中使用$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时,我应该能够插入像Check1这样的内容。
发布于 2012-11-17 10:17:43
我希望你正在做一些卫生工作。您应该对用户输入的所有值运行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);https://stackoverflow.com/questions/13426998
复制相似问题