php - 将 json 数据插入 mysql 表文件 JSON 数据包含的键比我的 mysql 表中的键多
问题描述
我有 JSON 数组。其中一些 json 键包含 mysql 表列或一些不在我的表中。
我正在像这样在 PHP 中创建查询:
$fields_query = $fields_query . strtoupper("$key") . " ,";
$values_query = $values_query . "'" . $value . "'" . " ,";
如何删除不在我的表中的 json 数据?
解决方案
您可以按照下面给出的步骤
$column_names
如链接https://www.codexworld.com/how-to/get-column-names-from-table-in-mysql-php/中所述,获取数组中表的列名- 现在,
json_decode()
在另一个数组中获取 JSON 数据$data
。记得提取关联数组。 - 声明另一个数组
$saveArray = [];
。 - 从数组中删除您不想成为插入查询一部分的列
$column_names
。您可以为此目的使用array_search()
和函数。unset()
- 首先遍历 array
$data
。 - 在上一步的循环内有另一个 for 循环。这个 for 循环将遍历数组
$column_names
。 - 现在只需使用最内层循环中的可用列名从父 for 循环中可用的 $data 的数据行中提取其值。
- 您只需要为每个数据行准备一个最终插入查询。
- 运行查询!
如果这些步骤对您有帮助,请告诉我。
推荐阅读
- heap-memory - 将 Weblogic 10.3.6 堆大小增加到 4 GB 时出现错误
- excel - 是否需要变量而不是“或”
- javascript - 如何更改对象中特定值的字体颜色?
- java - 在运行时更新 Tab 片段 TextViews
- python - 有条件地对齐两个数据帧,以便派生作为 numpy 中的条件传入的列,其中
- apache-spark - spark worker 使用了多少个 jvm 进程?
- bash - 现有 Bash 脚本的 Jenkins“找不到文件”错误
- postscript - 如何将堆栈的全部内容复制到 PostScript 中的数组中
- dart - 有状态小部件中的 setstate 与正常分配
- android - AndroidStudio 拒绝承认继承层次结构