簡體   English   中英

在沒有空值的情況下在MySQL中存儲POST數組?

[英]Storing the POST array in mysql without empty values?

這是讓我感到難過的一個。

我將$ _POST數組存儲在mysql數據庫中。 我也使用JavaScript在表單上動態創建輸入字段,但是如果輸入字段為空,仍然會插入數據庫(顯然)。

無論如何,是否有必要通過POST數組並過濾掉這些空值?

編輯:

使用WordPress但想法相同:

<?php 
foreach($_POST['eirepanel_inline_ads_options_name'] as $post_eirepanel_inline_ads_options_name):
    if(empty($post_eirepanel_inline_ads_options_name)): 
       echo 'empty';
    else: 
        update_option('eirepanel_inline_ads_options', $_POST);
        $eirepanel_inline_ads_options = get_option('eirepanel_inline_ads_options');
    endif; 
endforeach;
?>

您說過,您只希望$ _POST數組的元素不是空字符串:

   $nonEmpty = array_filter($_POST, function($value) {return $value!=='';} );

您編寫了動態添加字段。 我不知道您是否對表單字段中的數組使用PHP表示法 如果是這樣,則處理該額外類型的數據的確會有所不同。

有幾種。 但是,請注意並非總是發送值的控件。 如果未選中復選框,則不一定會獲得復選框的值。

由於您使用的是Javascript,如何將表單存儲為JSON:

<?php
$formVars = array();
foreach ($_POST as $key=>$value){
   if ($value != ''){
      $formVars[$key] = $value;
   }
}

$form = json_encode($formVars);//Store this in DB

在數據庫中插入任何內容之前,請檢查$ _POST的值

if($_POST['email'] == "") { ...

你可以做這樣的事情:

foreach ($_POST as $key => $value)
{
    if (empty($value))
    {
        unset($_POST[$key]);
    }
}

您可以對此進行空檢查。

免責聲明這是一個簡單的示例。 不檢查$value是否為數組(例如復選框或文件輸入)。 僅適用於輸入。

$data = array();
foreach ($_POST as $key => $value) {
   if (empty($value)) continue;
   $data[$key] = $value;
}
//save $data to DB
function filter_post($value)
{ 
  if ($value !='')
  {
    return $value;
  }

}
$new_array=array_filter($_POST,'filter_post');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM