我正在尋找一種將多個複選框選擇插入單個數據庫列的簡單解決方案。用戶選擇框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