php 调用接口保存数据到数据库

本文介绍了一个PHP脚本,该脚本通过抓取豆瓣电影API的数据,并将其解析后存储到MySQL数据库中。文章详细展示了如何使用cURL发起HTTPS请求获取JSON数据,再利用json_decode进行解析,最后通过mysqli接口实现数据的更新或插入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php
    require "com.php";
    $url="https://api.douban.com/v2/movie/in_theaters?count=15"; //接口
    function getHTTPS($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_REFERER, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
    }
    $getarray=getHTTPS($url);
    $obj=json_decode($getarray,true);
    $num=count($obj["subjects"]); //json数据
    
//    mysqli_query($mysqli,"delete from test"); //删除数据库
$result = mysqli_query($mysqli,"select * from test "); //查找全部数据
if(mysqli_num_rows($result)){
    
    for($i=0;$i<$num;$i++){
        
        $list_names[]=$obj["subjects"][$i]["original_title"];
        $list_age[]=$obj["subjects"][$i]["id"];
        $list_title[]=$obj["subjects"][$i]["title"];
        $list_max[]=$obj["subjects"][$i]["rating"]["average"];
        echo $list_max[$i]."--";
        $row=mysqli_query($mysqli,"select * from test where name='$list_names[$i]'");//查找是否存在
        $res=mysqli_num_rows($row);
            if($res>0){//存在更新
                mysqli_query($mysqli,"UPDATE test set age='$list_age[$i]',name='$list_names[$i]',time=now() where title='$list_title[$i]'");
                
            }else{//不存在插入
                $sql="insert into test (name,age,title,time) values ('$list_names[$i]','$list_age[$i]','$list_title[$i]',now())";
                if(mysqli_query($mysqli,$sql)){
                        
                    echo "插入成功 \n";
                }else{
                    echo "插入失败".$sql;
                }
            }
        
    }
    
}else{//第一次抓取没有数据就执行
    for($i=0;$i<$num;$i++){
        $list_names[]=$obj["subjects"][$i]["original_title"];
        $list_age[]=$obj["subjects"][$i]["id"];
        $list_title[]=$obj["subjects"][$i]["title"];
        $sql="insert into test (name,age,title,time) values ('$list_names[$i]','$list_age[$i]','$list_title[$i]',now())";
        if(mysqli_query($mysqli,$sql)){        
            echo "插入成功 \n";
        }else{
            echo "插入失败".$sql;
        }
    }
    
}
 

mysqli_close($mysqli)
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值