使用PHP将JSON信息发送到数据库?

用户名

我正在尝试使用PHP将数据从JSON文件发送到MySQL数据库。

我有99%的工作正常,但遇到了一个小障碍,我不知道。这是我的代码:

$con = mysqli_connect($host, $username, $password, $dbname) or die('Error in Connecting: ' . mysqli_error($con));

$st = mysqli_prepare($con, 'INSERT INTO url_feed(url, results, current_date, networks, identifier) VALUES (?, ?, ?, ?, ?)');

mysqli_stmt_bind_param($st, 'sssss', $url, $results, $current_date, $networks, $identifier);

$filename = 'https://www.example.com/random.json';
$json = file_get_contents($filename);   

$data = json_decode($json, true);

foreach ($data as $row) {
$url = $row['url'];
$identifier = $row['identifier'];
$current_date = $row['current_date'];
$results = $row['results'];
$networks = $row['networks'];

    mysqli_stmt_execute($st);
}

mysqli_close($con);

这是其中包含3个对象的JSON的副本:

[
   {
      "url":"http://example1.com",
      "identifier":495755330,
      "current_date":"2015-12-30 17:05:45",
      "results":3,
      "networks":{
         "FaceBook":{"detected":true,"result":"no-result"},
         "Twitter Inc":{"detected":false,"result":"no-result"},
         "Pinterest.com":{"detected":true,"result":"no-result"},
         "Other Sites":{"detected":true,"result":"some-result"}
      }
   },
   {
      "url":"http://example2.com",
      "identifier":495755331,
      "current_date":"2015-12-30 17:05:46",
      "results":0,
      "networks":{
         "FaceBook":{"detected":false,"result":"what-result"},
         "Twitter Inc":{"detected":false,"result":"some-result"},
         "Pinterest.com":{"detected":false,"result":"some-result"},
         "Other Sites":{"detected":false,"result":"what-result"}
      }
   },
   {
      "url":"http://example3.com",
      "identifier":495755332,
      "current_date":"2015-12-30 17:05:47",
      "results":1,
      "networks":{
         "FaceBook":{"detected":false,"result":"some-result"},
         "Twitter Inc":{"detected":true,"result":"some-result"},
         "Pinterest.com":{"detected":false,"result":"some-result"},
         "Other Sites":{"detected":false,"result":"some-result"}
      }
   }
]

现在,如果我运行脚本,它将像下面这样将其插入数据库:

id | url                 | results   | current_date        | networks | identifier  | status
1  | http://example1.com | 3         | 2015-12-30 17:05:45 | Array    | 495755330   | queued
2  | http://example2.com | 0         | 2015-12-30 17:05:46 | Array    | 495755331   | queued
3  | http://example3.com | 1         | 2015-12-30 17:05:47 | Array    | 495755332   | queued

但这是我希望输入的方式:

id | url                 | results   | current_date        | networks                           | identifier | status
1  | http://example1.com | 3         | 2015-12-30 17:05:45 | FaceBook,Pinterest.com,Other Sites | 495755330  | queued
2  | http://example3.com | 1         | 2015-12-30 17:05:47 | Twitter Inc                        | 495755332  | queued

这是我不知道的部分:

它试图以Array的形式输入,这显然不起作用-只是在该networks下插入了文本“ Array” 如果detected设置为,我只想插入数据库true如果不是,我不希望该社交网络在数据库中列出。

如果没有true为某个对象设置任何社交网络,那么我根本就不想输入该对象。这就是为什么您在我上面的示例中看到某些网络缺失的原因,以及为什么第二行不存在的原因。

爱德华多·埃斯科巴尔

而不是$networks = $row['networks'];使用此:

$a = json_decode($row['networks'], true);
$b = array_filter($a, function($el) {
  if ($el['detected'] == true) {
    return true;
  }
});
$c = implode(', ', array_keys($b));
$networks = $c;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将下拉列表的信息发送到数据库

来自分类Dev

将JSON发送到数据库时出错

来自分类Dev

如何使用Jquery和Ajax将Json数据发送到数据库中?

来自分类Dev

如何使用Jquery和Ajax将Json数据发送到数据库中?

来自分类Dev

AJAX到PHP不会使用NODEJS将数据发送到数据库

来自分类Dev

AJAX到PHP不会使用NODEJS将数据发送到数据库

来自分类Dev

如何使用php将表单内容发送到数据库

来自分类Dev

如何使用PHP将时间发送到MySql数据库?

来自分类Dev

使用Ajax将图像发送到数据库(php),而无需重新加载

来自分类Dev

如何使用 PHP 将 HTML 输入字段发送到我的 MySQLi 数据库?

来自分类Dev

用户信息未发送到数据库

来自分类Dev

用户信息未发送到数据库

来自分类Dev

将输入的信息发送到数据库中的MySQL表的HTML表单

来自分类Dev

通过BaseController将信息从数据库发送到SideNavigation刀片是好的吗?

来自分类Dev

连接ios应用以将信息发送到mysql数据库

来自分类Dev

如何将Firebase数据库中的Google登录信息发送到导航抽屉?

来自分类Dev

如何使用JSON将HTML数据发送到PHP?

来自分类Dev

将XML数据发送到MySQL数据库

来自分类Dev

将textarea数据发送到数据库的麻烦

来自分类Dev

将数据从表单发送到数据库

来自分类Dev

使用EtherCard.h库将arduino数据发送到我的数据库

来自分类Dev

使用EtherCard.h库将arduino数据发送到我的数据库

来自分类Dev

无法将数据发送到mysql数据库。这不是我的PHP代码

来自分类Dev

无法将数据从用户表单发送到 PHP 中的数据库

来自分类Dev

无法将数据发送到mysql数据库。这不是我的PHP代码

来自分类Dev

使用Jquery / ajax将数据发送到数据库

来自分类Dev

使用Jquery / ajax将数据发送到数据库

来自分类Dev

使用SqlDataSource将数据从FormView发送到我的数据库

来自分类Dev

在使用jQuery将数据发送到数据库时,如何使按钮处于活动状态?

Related 相关文章

  1. 1

    将下拉列表的信息发送到数据库

  2. 2

    将JSON发送到数据库时出错

  3. 3

    如何使用Jquery和Ajax将Json数据发送到数据库中?

  4. 4

    如何使用Jquery和Ajax将Json数据发送到数据库中?

  5. 5

    AJAX到PHP不会使用NODEJS将数据发送到数据库

  6. 6

    AJAX到PHP不会使用NODEJS将数据发送到数据库

  7. 7

    如何使用php将表单内容发送到数据库

  8. 8

    如何使用PHP将时间发送到MySql数据库?

  9. 9

    使用Ajax将图像发送到数据库(php),而无需重新加载

  10. 10

    如何使用 PHP 将 HTML 输入字段发送到我的 MySQLi 数据库?

  11. 11

    用户信息未发送到数据库

  12. 12

    用户信息未发送到数据库

  13. 13

    将输入的信息发送到数据库中的MySQL表的HTML表单

  14. 14

    通过BaseController将信息从数据库发送到SideNavigation刀片是好的吗?

  15. 15

    连接ios应用以将信息发送到mysql数据库

  16. 16

    如何将Firebase数据库中的Google登录信息发送到导航抽屉?

  17. 17

    如何使用JSON将HTML数据发送到PHP?

  18. 18

    将XML数据发送到MySQL数据库

  19. 19

    将textarea数据发送到数据库的麻烦

  20. 20

    将数据从表单发送到数据库

  21. 21

    使用EtherCard.h库将arduino数据发送到我的数据库

  22. 22

    使用EtherCard.h库将arduino数据发送到我的数据库

  23. 23

    无法将数据发送到mysql数据库。这不是我的PHP代码

  24. 24

    无法将数据从用户表单发送到 PHP 中的数据库

  25. 25

    无法将数据发送到mysql数据库。这不是我的PHP代码

  26. 26

    使用Jquery / ajax将数据发送到数据库

  27. 27

    使用Jquery / ajax将数据发送到数据库

  28. 28

    使用SqlDataSource将数据从FormView发送到我的数据库

  29. 29

    在使用jQuery将数据发送到数据库时,如何使按钮处于活动状态?

热门标签

归档