如何解决在没有空值的情况下在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 举报,一经查实,本站将立刻删除。