【发布时间】:2011-12-20 22:43:50
【问题描述】:
我正在尝试在表单上使用复选框,并希望在我的数据库中将值保存为 1 或 0。
在我的数据库中,我有一个名为“订阅”的字段,具有以下属性:
TINYING(4)
Not Null
Default value = '0'
在我的 html 表单中,我有以下内容:
<input type="checkbox" value="1" name="subscribe" checked>Subscribe to our newsletter<br />
如果表单在其默认选中状态下提交,则记录将很好地传递到数据库。
如果有人取消选中该复选框,则不会保存任何记录。
任何想法为什么会发生这种情况?需要看php帮忙吗?
谢谢你, 内森
【问题讨论】:
-
错字?
TINYING(4)应该是:TINYINT(4) -
是的,这只是一个错字。对此感到抱歉。
-
这是我正在使用的 php: $addfeedback = "INSERT INTO feedback (user, email, subscribe, cmets) VALUES('".$_POST['user']."',' ".$_POST['email']."','".$_POST['subscribe']."','".$_POST['cmets']."')"; $results = mysql_query($addfeedback);
-
将表单数据直接传递到查询中非常糟糕。谷歌关于正确的转义和 SQL 注入。
-
感谢血腥世界。很高兴知道这一点。我才刚刚开始,所以我想我会学习如何正确地做到这一点(更有用的是像你这样的有用技巧)——在这一点上,我仍然只是试图获得基本功能,并且很困惑为什么它不起作用。