PHP解析csv文件中的空数据

时间:2018-07-04 12:54:06

标签: php

我正在尝试使用PHP逐行从csv文件获取数据,然后将其插入Mysql。

csv文件行中的某些值是空的,需要作为Null值加载到Mysql中。我似乎无法检查这些值。我尝试过:

        if (strlen($csv[9])==0) {
            $follow_up1 = null;
        } else {
            $follow_up1 = $mysqli->real_escape_string($csv[9]);
        }

或:

    if (empty($csv[9]) {
        $follow_up1 = null;
    } else {
        $follow_up1 = $mysqli->real_escape_string($csv[9]);
    }

或:

    if (is_null($csv[9]) {
        $follow_up1 = null;
    } else {
        $follow_up1 = $mysqli->real_escape_string($csv[9]);
    }

如何检查单元格值是否为空?

3 个答案:

答案 0 :(得分:1)

在第二个示例中,您缺少“)”,因此可能会引发错误。

if (empty($csv[9])) {
        $follow_up1 = null;
    } else {
        $follow_up1 = $mysqli->real_escape_string($csv[9]);
    }

您还可以搜索:

$follow_up1 = $csv[9] === '' ? null : $mysqli->real_escape_string($csv[9]);

或:

 $follow_up1 = $csv[9] === "NULL" ? null : $mysqli->real_escape_string($csv[9]);

如果您拥有的是一个空字符串。

答案 1 :(得分:1)

这应该做:

if (trim($csv[9]) === '') {
    $follow_up1 = null;
} else {
    $follow_up1 = $mysqli->real_escape_string($csv[9]);
}

答案 2 :(得分:0)

如果需要将字符串放入插入查询中(可以是字符串NULL),则需要同时添加单引号:

if (empty($csv[9]) {
    $follow_up1 = "NULL"; // a string between quotes
} else {
    $follow_up1 = "'" . $mysqli->real_escape_string($csv[9]) . "'";
}

然后在没有引号的SQL中使用$follow_up1