PHP简单的HTML DOM解析器数组到数据库

时间:2017-09-24 19:18:40

标签: php mysql simple-html-dom

所以问题是,当上传到mysql时,数据库只上传数组中的最后一个值。

                        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,快速的答案将不胜感激。

2 个答案:

答案 0 :(得分:0)

我认为,您的数据库字段“link”是类型字符串。 你想插入你的变量$ _array_link,这是类型数组。

因此尝试序列化($ _ array_link)将“转换”数组转换为字符串。 我认为,@不是必须的,没有它是更好的阅读。

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

稍后,您要使用数据库中的变量。因此,在选择数据后,使用unserialize()来恢复数据。

答案 1 :(得分:0)

问题是数据库ID是主要密钥,只允许使用特定ID