2017-02-14 66 views
1

這是我擁有的多維數組。我是Php的新手..我想輸入姓名,folderid並上傳到一個sql表中,但我卡在數組部分。我需要幫助將多維php數組插入到mysql表中

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)); 
} 

回答

0

因爲數組結構不嵌套文件夾子陣列內的文件子陣列,我假設文件夾的索引與文件的索引相對應。

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()folderid需要修改此片段。