Php 在mysql中存储POST数组而不使用空值?

Php 在mysql中存储POST数组而不使用空值?,php,arrays,post,filter,Php,Arrays,Post,Filter,这是一个让我困惑的问题 我正在mysql数据库中存储$\u POST数组。我也在使用JavaScript在表单上动态创建输入字段,但是如果输入字段为空,仍然会将其插入数据库(显然) 是否仍然需要遍历POST数组并过滤掉这些空值 编辑: 使用WordPress,但想法相同: <?php foreach($_POST['eirepanel_inline_ads_options_name'] as $post_eirepanel_inline_ads_options_name): if

这是一个让我困惑的问题

我正在mysql数据库中存储$\u POST数组。我也在使用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;
?>

在数据库中插入任何内容之前,请检查$\u POST的值

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

你可以这样做:

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

有几个。但是,要小心那些并不总是发送值的控件。如果复选框未勾选,则不一定会得到该复选框的值

既然您使用的是Javascript,那么将表单存储为JSON如何:

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

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

您可以对它执行空检查

免责声明 这是一个简单的例子。不检查
$value
是否为数组(例如复选框或文件输入)。仅适用于输入

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

您说过您只希望$\u POST数组中的元素不是空字符串:

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

您编写了动态添加字段。我不知道你是否利用了这个机会。如果是这样的话,处理这种额外类型的数据确实会有一些不同。

如何处理提交按钮值?你认为什么是空值?空字符串?0?提交值具有布尔值。空值将是空字符串。嗯,提交按钮上显示的文本是什么?您是否在表单()中使用数组?
   $nonEmpty = array_filter($_POST, function($value) {return $value!=='';} );