Php 在mysql中存储POST数组而不使用空值?
这是一个让我困惑的问题 我正在mysql数据库中存储$\u POST数组。我也在使用JavaScript在表单上动态创建输入字段,但是如果输入字段为空,仍然会将其插入数据库(显然) 是否仍然需要遍历POST数组并过滤掉这些空值 编辑: 使用WordPress,但想法相同: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
<?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!=='';} );