php - 将空的 $_POST 数据更改为 NULL 的快速方法

标签 php mysql

我目前有一个包含 50 多个字段的表单,其中大约有 20 个可选字段。

是否有任何简单的方法可以一次处理 $_POST 数据以删除空字符串并将它们更改为 NULL,然后再插入数据库,或者它们是否必须一个接一个地完成以下方法:

if ($_POST['field_x'] == "") {
    $_POST['field_x'] = NULL;
}

最佳答案

您可以使用 array_filter:

$post = array_filter($_POST);

http://php.net/manual/en/function.array-filter.php

If no callback is supplied, all entries of input equal to FALSE (see converting to boolean) will be removed.

要仅删除空字符串,您可以使用:

function drop_empty($var)
{
  return ($var === '') ? NULL : $var;
}

$post = array_filter($_POST, 'drop_empty');

如果您不想删除值,而只想将它们设置为 NULL:使用 array_map:

$post = array_map('drop_empty', $_POST);

关于php - 将空的 $_POST 数据更改为 NULL 的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7154337/

相关文章:

php - 正则表达式不能正确处理土耳其字符

mysql - 为什么我的查询返回 "Empty set (0.00 sec)"?

php - 是否可以从 mysql 回显特定单元格?

javascript - 用户上传文件时选择文件夹

javascript - 使用嵌入的表单集合保存相关 Doctrine 实体时出现 Symfony SQL 错误

c++ - SOCI 外部符号未解析 "struct soci::mysql_backend_factory const soci::mysql"

php - 为带有 TICKED 复选框的行运行 UPDATE 语句

php - 运行 Composer 更新后的 SQL 错误

php - 如何在使用 PHP 上传图像之前检查/修复图像旋转

php - PHP 如何创建新的 html 页面?