[导读]今天心情不错,继续来填我的爬虫项目的坑,在这里我已经拿到了优酷动漫上的数据了,大约有3000条左右。正是数据量有点多,不可能人工用手填入数据库的,不然还不累死,而且还会出错,这样子做不靠谱是最笨的方法。
今天心情不错,继续来填我的爬虫项目的坑,在这里我已经拿到了优酷动漫上的数据了,大约有3000条左右。正是数据量有点多,不可能人工用手填入数据库的,不然还不累死,而且还会出错,这样子做不靠谱是最笨的方法。所以这里面我第一个想到的就是直接使用sql语句插入,一条条的插入数据库。
我的数据具体是这个样子的:
//$v[0]===>动漫简介//$v[1]===>动漫图片url//$v[2]===>动漫名称//$v[3]===>动漫外链数组
(1)直接插入
所以具体的实现代码如下:
//方法1:直接插入
foreach($json as $k=>$v){
//$v[0]===>动漫简介
//$v[1]===>动漫图片url
//$v[2]===>动漫名称
//$v[3]===>动漫外链数组
//插入数据到list表
$sql="INSERT INTO `v_list` (`id`,`type`,`title`,`img_url`,`abstract`,`episode`)
VALUES ($k,0,'$v[2]','$v[1]','$v[0]',".sizeof($v[3]).")";
if($conn->query($sql)){
echo '插入数据成功!';
}else{
die('插入数据失败:'.$conn->error);
}
foreach($v[3] as $kk=>$vv){
//插入数据到vediolist
$sql="INSERT INTO `v_vediolist` (`belong`,`vedio_url`,`title`)VALUES($k,'$vv[1]','$vv[0]')";
if($conn->query($sql)){
echo '插入数据成功!';
}else{
die('插入数据失败:'.$conn->error);
}
}
}
这种方法真的是慢,花了70秒左右。
3000条数据就70秒,那数据多起来不就等几天几夜也没录完。所以开始找另外一种方法。
(2)MySQLi预处理
//方法2:MySQLi 预处理
$stmt1 = $conn->prepare("INSERT INTO `v_list` (`id`,`type`,`title`,`img_url`,`abstract`,`episode`)
VALUES ("https://img-blog.csdn.net/20170726001753381" alt="">