2017-09-24 106 views
-2

所以問題是,當上傳到MySQL數據庫只上傳數組中的最後一個值。PHP簡單的HTML DOM解析器數組到數據庫

     if (substr($avsnitt["serier"], 0, 16) === 'http://random'){ 

             // Create DOM from URL or file 
          $html = file_get_html($avsnitt["serier"]); 


          $array_title = array(); 
          $array_link = array(); 

          foreach($html->find('div[class=entry]') as $element){ 

           foreach ($element->find('a') as $text) { 
            $array_title[] = $text->plaintext; 

           } 
           foreach ($element->find('a') as $test) { 
            $array_link[] = $test->href; 
           } 


            $count_name = count($array_title); 

            for($i=0; $i<$count_name; $i++){ 
             $_array_title = mysql_escape_string($array_title[$i]); 
             $_array_link = mysql_escape_string($array_link [$i]); 

             print_r($_array_title); 
             print_r($_array_link); 

             $sql2 = "INSERT INTO episodes (name, ID, link) VALUES ('" . @$_array_title. "','" . @$avsnitt["ID"] . "', '" . @$_array_link . "');"; 
             mysqli_query($CON, $sql2); 
            } 


           }  
         } 

我是新來的PHP MySQL所以我不知道如何陣列上傳到MySQL,快速的答案將不勝感激謝謝。

+0

基本上你不能上傳數組。您需要將它們轉換爲其他內容,如字符串。參見:[serialize()](http://php.net/manual/en/function.serialize.php) –

回答

0

問題是數據庫ID是主鍵只允許一個特定的ID

0

我想,你的數據庫字段「鏈接」是字符串類型。 你想插入你的變量$ _array_link,女巫是類型數組。

所以嘗試序列化($ _ array_link)將數組「轉換」爲字符串。 我認爲,@不是必然的,沒有它更好的閱讀。

$sql2 = "INSERT INTO episodes (name, ID, link) 
VALUES ('" . @$_array_title. "','" . @$avsnitt["ID"] . "', '" . serialize($_array_link). "');"; 

之後,您想使用數據庫中的變量。所以在你選擇你的數據後,使用unserialize()來取回數組。