zoukankan      html  css  js  c++  java
  • php面试上机题(2018-3-3)

    需求:将第三方api的前3000条数据全部读取出来,存入对应的数据库字段

    第三方api:http://pub.cloudmob.mobi/publisherapi/offers/?uid=92&key=d4bab08884781dbf2bede528e27d243d&limit=1000&page=1

    sql代码:

    /*
    Navicat MySQL Data Transfer
    
    Source Server         : test
    Source Server Version : 50714
    Source Host           : localhost:3306
    Source Database       : test
    
    Target Server Type    : MYSQL
    Target Server Version : 50714
    File Encoding         : 65001
    
    Date: 2018-03-04 10:02:51
    */
    
    SET FOREIGN_KEY_CHECKS=0;
    
    -- ----------------------------
    -- Table structure for offers
    -- ----------------------------
    DROP TABLE IF EXISTS `offers`;
    CREATE TABLE `offers` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `description` text NOT NULL,
      `country` varchar(255) NOT NULL,
      `allowedtraffic` varchar(255) NOT NULL,
      `oid` varchar(10) NOT NULL,
      `avail` varchar(255) NOT NULL,
      `name` varchar(255) NOT NULL,
      `link` text NOT NULL,
      `preview` text NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=25575 DEFAULT CHARSET=utf8;

    php代码:

     <?php
     //思路:
     // 1.先通过php的curl将数据取出来,转换为对象
     // 2.连接数据库,做预处理
     // 3.将取出来的值转换为数组,并绑定数据库参数
     // 4.执行sql操作,数据抓取成功
     //ps:数据的初始化及url会话的关闭只能执行一次,所以放在for循环的后面
        $curl = curl_init();
        $page=1;
        for($j=0;$j<3;$j++){
            $url="http://pub.cloudmob.mobi/publisherapi/offers/?uid=92&key=d4bab08884781dbf2bede528e27d243d&limit=1&page=$page";
            // echo $url;
            curl_setopt($curl, CURLOPT_URL,$url );
            curl_setopt($curl, CURLOPT_HEADER, 0);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            $data = curl_exec($curl);
            // 将json字符串转换为对象
             $data=json_decode($data);
            $con=mysqli_connect("localhost","root","","test");
             if (!$con->connect_error) {
                 echo $con->connect_error;
             }
            mysqli_set_charset($con,"gb2312");
            $sql="INSERT INTO offers (description,country,allowedtraffic,oid,avail,name,link,preview)VALUES ( ?,?,?,?,?,?,?,?);";
            $sql_stmt=$con->prepare($sql) or die($con->error);
            for ($i=0; $i <1; $i++) { 
                // 将对象的值转换为数组
                $oid=json_encode($data->data[$i]->oid);
                $avail=json_encode($data->data[$i]->avail);
                $name=json_encode($data->data[$i]->name);
                $link=json_encode($data->data[$i]->link);
                $preview=json_encode($data->data[$i]->preview);
                $allowedtraffic=json_encode($data->data[$i]->allowedtraffic);
                $description=json_encode($data->data[$i]->description);
                $country=json_encode($data->data[$i]->country);
                $sql_stmt->bind_param('ssssssss',$description,$country,$allowedtraffic,$oid,$avail,$name,$link,$preview);
                $b=$sql_stmt->execute();
                }
             if (!$b) {
                 echo "操作失败".$sql_stmt->error;
             }else{
                 echo "操作成功";
             }
             //释放
                $page=$page+1;
            $con->close();
            } 
        curl_close($curl);
    ?>
  • 相关阅读:
    Linux命令应用大词典-第11章 Shell编程
    Kubernetes 学习12 kubernetes 存储卷
    linux dd命令
    Kubernetes 学习11 kubernetes ingress及ingress controller
    Kubernetes 学习10 Service资源
    Kubernetes 学习9 Pod控制器
    Kubernetes 学习8 Pod控制器
    Kubernetes 学习7 Pod控制器应用进阶2
    Kubernetes 学习6 Pod控制器应用进阶
    Kubernetes 学习5 kubernetes资源清单定义入门
  • 原文地址:https://www.cnblogs.com/8013-cmf/p/8503930.html
Copyright © 2011-2022 走看看