2017-09-24 108 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()来取回数组。