PHP简单的HTML DOM解析器数组到数据库
问题描述:
所以问题是,当上传到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,快速的答案将不胜感激谢谢。
答
问题是数据库ID是主键只允许一个特定的ID
答
我想,你的数据库字段“链接”是字符串类型。 你想插入你的变量$ _array_link,女巫是类型数组。
所以尝试序列化($ _ array_link)将数组“转换”为字符串。 我认为,@不是必然的,没有它更好的阅读。
$sql2 = "INSERT INTO episodes (name, ID, link)
VALUES ('" . @$_array_title. "','" . @$avsnitt["ID"] . "', '" . serialize($_array_link). "');";
之后,您想使用数据库中的变量。所以在你选择你的数据后,使用unserialize()来取回数组。
基本上你不能上传数组。您需要将它们转换为其他内容,如字符串。参见:[serialize()](http://php.net/manual/en/function.serialize.php) –