我正在寻找一种将多个复选框选择插入单个数据库列的简单解决方案。用户选择框1,4和6 - 因此数据库会反映“1,4,6”..逗号会很好,但不是必需的。如果选中了一个复选框,信息将按照它应该插入。如果选择了多个,则只有最后一个将被插入到数据库中。其他一切工作正常,但这些沉重的复选框。我试图用将多个复选框值插入到单个SQL数据库列中
<?php
if(isset($_POST['mode'])) {
$mode = implode(",", $_POST['mode']);
} else {
$mode = "";
}
?>
<?php
由另一有人问同样的问题表明,虽然这种方法给我留下了“阵列”之列,而不是任何数字里面无论选择什么。
我试图发布一些图片来更好地解释,但它不会允许我。我不是SQL或PHP专业人员,只是尽量学习尽可能多地获取这个数据库的速度。如果有解决这个问题,请赐教。
这里是我使用的动作脚本提交代码:
<?php
if(isset($_POST['mode'])) {
$mode = implode(",", $_POST['mode']);
} else {
$mode = "";
}
?>
<?php
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Get values from form
$gamename=$_POST['gamename'];
$region=$_POST['region'];
$mode=$_POST['mode'];
$notes=$_POST['notes'];
// Insert data into mysql
$sql="INSERT INTO $tbl_name(gamename, region, mode, notes)VALUES('$gamename', '$region', '$mode', '$notes')";
$result=mysql_query($sql);
// if successfully insert data into database, displays message "Successful".
if($result){
echo "Successful";
echo "<BR>";
echo "<a href='insert.php'>Back to main page</a>";
}
else {
echo "ERROR";
}
?>
<?php
// close connection
mysql_close();
?>
这里是我的复选框代码:
<td><input type="checkbox" name="mode[]" id="mode" value="1" />
mode 1<br />
<input type="checkbox" name="mode[]" id="mode" value="2" />
mode 2<br />
<input type="checkbox" name="mode[]" id="mode" value="3" />
mode 3<br />
<input type="checkbox" name="mode[]" id="mode" value="4" />
mode 4 <br />
<input type="checkbox" name="mode[]" id="mode" value="5" />
mode 5 <br />
<input type="checkbox" name="mode[]" id="mode" value="6" />
mode 6 <br />
<input type="checkbox" name="mode[]" id="mode" value="7" />
mode 7<br />
<input type="checkbox" name="mode[]" id="mode" value="8" />
mode 8
</td>
作为一个侧面说明,什么步骤应该我采取确保我的数据库和网站不容易受到简单的利用。我计划让这些表单被公众用来公开地向数据库提交信息。
请不要使用mysql_ *函数,它弃用(见[*红box *](http://php.net/manual/en/function.mysql-query.php)),并且容易受到sql注入的影响。使用[* PDO *](http://php.net/manual/en/book.pdo.php)或[* MySQLi *](http://php.net/manual/en/book.mysqli.php) – alfasin
您能否详细介绍一下SQL的新手?到底漏洞在哪里,我可以在保持现有功能的同时替换易受攻击的代码? –
如果您会阅读我在我的评论中发布的链接 – alfasin