我正在尝试使用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]);
}
如何检查单元格值是否为空?
答案 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