php - 将任何空输入转换为空字符串
问题描述
所以我有一个while循环,在里面我有$array_collections
每个循环给我35个值,我想验证每个值是否等于NULL
然后给它一个空字符串。我这样做了:
while ($array_collections = tep_db_fetch_array($query)) {
foreach ($array_collections as $key => $value) {
if (is_null($value)) {
$array_collections[$key] = "";
}
}
$docs[] = new \Elastica\Document('', \Glam\HttpUtils::jsonEncode(
array(
'X' => $array_collections['X'],
... etc
)));
}
这在技术上应该可行,但是循环超过 500K 元素,所以它很大,对于我们将它放入表中的每个元素,问题是我在某些时候内存不足。那么有没有另一种简单的方法可以给任何给定NULL
的值一个空字符串而不循环?
解决方案
好吧,您可以将空字符串的 NOT NULL 约束作为 DEFAULT 值放在数据库中,这样您就不需要在 php 中使用循环执行此操作,但是如果您不想更改数据库设计,那么您可以在查询中使用 COALESCE
select COALESCE(yourfield,'') from table
它将NULL值转换为空字符串
推荐阅读
- javascript - 带有 spawnCommand 的 Yeoman/Node 不提供 stdout/stderr
- android - 在颤振中使用 swipper 时发生错误
- c - C 编程...为什么“return”语句在这段代码中只给出一个值?
- java - 如何避免转义 WebTarget 查询参数?
- ios - UIPickerView 宽度约束问题
- javascript - 如何在 json 数组中定义重复键?
- django - 按日期分组查询集
- python - 用填充堆叠numpy数组
- c# - 自定义 swagger 导入邮递员
- c# - C# DllImport 函数返回指向结构的指针