php从A数据库中多张表读数据,插入到B数据库B表里面

最近做一个报表系统,要求是从一个数据库里面读取出部分数据,将其放到一个新的数据库里面,然后对新数据库里面的数据进行加工。从而得到相应的报表系统。
首先第一个任务就是将数据提取到新的数据库里面,接下来说说我的心酸历程
最开始我 想的是直接mysql写的,但是发现公司的环境不支持,然后折腾的是mysqli…对mysqli简单研究下,发现它和mysql其实主要的用法差不多。
遇到的问题:1.数据库中文字符读取出来之后,直接变成问号
2.mysql server host要填写正确(此处当时我添加了http://然后直接给我报错了)
3. 要获取前一周的时间条件(此处date_sub得到的数据是2016-01-18这种形式,而之前数据库clock是时间戳,然后需要对clock进行处理才可以得到正确的时间)
where date_sub(curdate(), INTERVAL 7 DAY) <= DATE(FROM_UNIXTIME(clock))";

接下来,上源码

<?php

/**
 * Created by PhpStorm.
 * User: 梦大大
 * Date: 2016/1/18
 * Time: 16:27
 * Description:这是获取test数据库中trends表中部分字段的值
 */
    $mysqli=new mysqli('10.1.31.xx','root','','test');//这是链接的host,用户名,密码,还有数据库
    if (mysqli_connect_errno()) {//判断是否成功连接
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }
    //解决中文乱码的问题
    if (!$mysqli->set_charset("utf8")) {
        printf("Error loading character set utf8: %s\n", $mysqli->error);
    } else {
        printf("Current character set: %s\n", $mysqli->character_set_name());
    }
    $sql="SELECT itemid,clock,value_min,value_avg,value_max FROM trends where date_sub(curdate(), INTERVAL 7 DAY) <= DATE(FROM_UNIXTIME(clock))";
    $result=$mysqli->query($sql);
    //此处通过循环的办法,将获取到的数据插入到B数据库的B表当中
    while($row=mysqli_fetch_assoc($result)){
        $itemid=$row['itemid'];
        $clock=$row['clock'];
        $value_min=$row['value_min'];
        $value_avg=$row['value_avg'];
        /*echo $key_;
        echo "<br>";*/
        $value_max=$row['value_max'];

        $mysqli2=new mysqli("10.1.31.xx","root","","B");
        if (mysqli_connect_errno()) {
            printf("Connect failed: %s\n", mysqli_connect_error());
            exit();
        }
        if (!$mysqli2->set_charset("utf8")) {
            printf("Error loading character set utf8: %s\n", $mysqli2->error);
        } else {
            printf("Current character set: %s\n", $mysqli->character_set_name());
        }
        $query2="INSERT INTO trends(itemid,clock,value_min,value_avg,value_max) VALUES('$itemid','$clock','$value_min','$value_avg','$value_max')";
        if($mysqli2->query($query2)==true){
            echo "sucess";
            echo "<br>";
        }else{
            echo "fail";
        }

        $mysqli2->close();
    }
    $mysqli->close();
?>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值