【发布时间】:2011-09-08 18:56:31
【问题描述】:
MySQL
`field1` tinyint(1) NOT NULL default '1',
`field2` tinyint(1) NOT NULL default '1',
`field3` tinyint(1) NOT NULL default '1',
`field4` tinyint(1) NOT NULL default '1',
`field5` tinyint(1) NOT NULL default '1',
HTML
<form method="post">
<input type="hidden" name="blah" value="blah">
<input type="checkbox" name="field1" value="1">
<input type="checkbox" name="field2" value="1">
<input type="checkbox" name="field3" value="1">
<input type="checkbox" name="field4" value="1">
<input type="checkbox" name="field5" value="1">
<button type="submit">Submit</button>
</form>
PHP
mysql_query("UPDATE `table` SET `field1` = '$_POST[field1]', .......");
所以,我想做的是:
a) 如果复选框被选中,我想用1更新相应的字段
b) 如果未选中该复选框,我想用0 更新该字段
现在,请告诉我,我不必这样做,还有更好的方法:
$field1 = isset($_POST['field1']) ? 1 : 0;
$field2 = isset($_POST['field2']) ? 1 : 0;
$field3 = isset($_POST['field3']) ? 1 : 0;
$field4 = isset($_POST['field4']) ? 1 : 0;
$field5 = isset($_POST['field5']) ? 1 : 0;
mysql_query("UPDATE `table` SET `field1` = '$field1', `field2` = '$field2' ....");
【问题讨论】:
-
推荐您的方式,因为它通过不将
$_POST(或$_GET或任何其他用户输入值)直接放入SQL查询来避免SQL注入。 -
好吧,那是有道理的。谢谢。