![](/img/trans.png)
[英]How to prevent rows with default values being submitted to MySQL database
[英]Prevent empty array records from being submitted in to MYSQL database using php
我想防止將數組中的空記錄提交到MYSQL數據庫:
HTML部分:
<input type="text" name="m_name[]" value="name"/>
<input type="text" name="m_lastname[]" value="lastname"/>
<input type="text" name="m_name[]" value="second_name"/>
<input type="text" name="m_lastname[]" value="second_lastname"/>
<input type="text" name="m_name[]" value=""/>
<input type="text" name="m_lastname[]" value=""/>
這是PHP和MySQL的一部分:
if(!empty($_POST['m_name'])) $m_name = array_map('mysql_real_escape_string', $_POST['m_name']);
if(!empty($_POST['m_lastname'])) $m_lastname = array_map('mysql_real_escape_string', $_POST['m_lastname']);
for($l=0; $l < count($m_name); $l++){
mysql_query("INSERT INTO `group_members` SET
`m_name` ='".$m_name[$l]."',
`m_lastname` ='".$m_lastname[$l]."'"
);
}
問題在於所有這6個輸入(無論那些不包含任何值的輸入)都將提交給數據庫。 我究竟做錯了什么?!
我認為問題是,如果要使$m_name
不為空,但$m_lastname
為空,那么for循環將被執行,現場m_lastname
從表group_members
將插入后空。
由於沒有人回答這個問題,所以我終於有了解決方法,我將分享它,因為有人會遇到我的問題並偶然遇到這個問題:
只需使用array_filter()
,它可以為您方便地處理所有這些:
$m_name = array_filter(array_map('mysql_real_escape_string', $_POST['m_name']));
$m_lastname = array_filter(array_map('mysql_real_escape_string', $_POST['m_lastname']));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.