微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在没有空值的情况下在MySQL中存储POST数组?

如何解决在没有空值的情况下在MySQL中存储POST数组?

| 这是让我感到难过的一个。 我将$ _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]);
    }
}
    ,        您可以对此进行空检查。 免责声明 这是一个简单的例子。不检查``5''是否为数组(例如复选框或文件输入)。仅适用于输入。
$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\');
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。