【问题标题】:inserting Multidimensional php array into mysql table将多维php数组插入mysql表
【发布时间】:2017-07-03 03:46:15
【问题描述】:

这是我拥有的多维数组。我是 Php 的新手 ..我想输入名称、文件夹 ID 并上传到 sql 表中,但我卡在数组部分。我需要帮助

Array
(
[status] => 200
[msg] => OK
[result] => Array
    (
        [folders] => Array
            (
                [0] => Array
                    (
                        [id] => 1861013
                        [name] => .videothumb
                    )

            )

        [files] => Array
            (
                [0] => Array
                    (
                        [name] => wildlife.mp4
                        [cblock] => 
                        [sha1] => d5d4e1001f98f70324ef4f84ccd6d683f653c513
                        [folderid] => 1861011
                        [upload_at] => 1487016733
                        [status] => active
                        [size] => 558253404
                        [link] => link here
                        [download_count] => 0
                        [cstatus] => ok

                    )

            )

    )

)

这是我试图用来将数据插入表中的 mysql 插入代码,但我在数据库中得到的都是零

 $st = $dbh->prepare("INSERT INTO movies(name, upload_at, link, folderid)     
  VALUES (:field1, :field2, :field3, :field4)");


 // bind variables to insert query params

      $st->bindParam(1, $name);
      $st->bindParam(2, $uploadat );
      $st->bindParam(3, $link);
      $st->bindParam(4, $folderid);




  $json = file_get_contents($filename);   

//convert json object to php associative array

$data = json_decode($json, true);





// loop through the array
foreach ($data as $item) 
 {  $name = $item['result']['folders'][0]['id'];
  $uploadat = $item['result']['files'][0]['upload_at']; 
  $link = $item['result']['files'][0]['link']; 
  $folderid = $item['result']['files'][0]['folderid'];   

    echo $name;
    echo $folderid;
    // execute insert query
    $st->execute(array(':field1'=>$name,
                       ':field2'=>$uploadat,
                       ':field3'=>$link,
                       ':field4'=>$folderid));
}

【问题讨论】:

    标签: php mysql arrays multidimensional-array


    【解决方案1】:

    因为数组结构没有将文件子数组嵌套在文件夹子数组中,所以我假设文件夹的索引与文件的索引相对应。

    foreach($data["result"]["folders"] as $index=>$subarray){
        $st->execute(array(':field1'=>$subarray["id"],
                           ':field2'=>$data["result"]["files"][$index]["uploadat"],
                           ':field3'=>$data["result"]["files"][$index]["link"],
                           ':field4'=>$data["result"]["files"][$index]["folderid"]));
    }
    

    可疑的是,$data["result"]["files"][$index]["folderid"] 与您的示例数组中的 $subarray["id"] 不匹配。

    如果需要array_search() for folderid,则需要修改此 sn-p。

    【讨论】:

      猜你喜欢
      • 2011-12-12
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      • 2017-12-17
      • 2014-05-28
      • 2016-10-19
      • 2015-10-18
      • 1970-01-01
      相关资源
      最近更新 更多