tp3.2 导入excel数据到mysql数据库

1. html 页面代码如下:

 <form action="{:U('save')}" method="post" enctype="multipart/form-data" style='margin-bottom: 0;' />

                            <fieldset>
                                <div class='span7 offset1'>

                                    <div class='control-group'>
                                        <label class='control-label'>导入数据:</label>
                                        <div class='controls'>
                                           
                                            <label class='radio inline'>
                                                <input type='file' name="file" value=""  />
                                                上传文档
                                            </label>

                                        </div>
                                    </div>

                                </div>

                            </fieldset>

                            <div class='text-right'>
                                
                                  <button type="submit" class="btn btn-primary submit" >提交信息</button>
                                <a class='btn btn-info'  href="{:U('import')}">
                                    <i class='icon-chevron-left'></i>
                                    返回
                                </a>
                            </div>

                            </form>

2. 后台接收文件代码:

public  function save(){

                if (!empty($_FILES)){
                $upload = new \Think\Upload();                      // 实例化上传类
                $upload->maxSize   =     10485760 ;                 // 设置附件上传大小
                $upload->exts      =     array('xls','xlsx');       // 设置附件上传类型
                $upload->rootPath  = './Public/Excel/';             // 设置附件上传根目录
                $upload->autoSub   = false;                         // 将自动生成以photo后面加时间的形式文件夹,关闭
                // 上传文件
                $info   =   $upload->upload();                                  // 上传文件
                $exts   = $info['file']['ext'];
                 //print_r($exts);die;                                 // 获取文件后缀
                $filename = $upload->rootPath.$info['file']['savename'];        // 生成文件路径名

                if(!$info) {                                                    // 上传错误提示错误信息
                    $this->error($upload->getError()); 
                }else{                                                          // 上传成功
                     Vendor('PHPExcel');
                    $PHPExcel = new \PHPExcel();     
                                               // 创建PHPExcel对象,注意,不能少了\
                    if ($exts == 'xls') {    
                         // 如果excel文件后缀名为.xls,导入这个类
                        Vendor('PHPExcel.Reader.Excel5');
                        $PHPReader= new \PHPExcel_Reader_Excel5();
                    } else if ($exts == 'xlsx') {
                        Vendor('PHPExcel.Reader.Excel2007');
                        $PHPReader =new \PHPExcel_Reader_Excel2007();
     
                   }
                        
                    $PHPExcel =$PHPReader->load($filename, $encode = 'utf-8');  //加载文件内容,编码utf-8
                    $excel_array=$PHPExcel->getSheet(0)->toArray();   //转换为数组格式

                    array_shift($excel_array);  //删除第一个数组(标题);
                   $city = [];
                   $i=0;
               foreach($excel_array as $k=>$v) {

                   $click_time  = strtotime($v[2]);//点击时间转为时间戳
                   $active_time = strtotime($v[2]);//激活时间转为时间戳
                   $city[$k]['adid']      = $v[0];
                   $city[$k]['idfa']      = $v[1];
                   $city[$k]['udid']      = $v[4];
                   $city[$k]['model']     = $v[5];
                   $city[$k]['os']        = $v[6];
                   $city[$k]['ip']        = $v[7];
                   $city[$k]['add_time']  = $click_time;
                   $city[$k]['act_time']  = $active_time;

                   $i++;

               }

                # 批量添加数据入库
                $ex=M('api_check_udid')->addAll($city);

                if($ex){                                         
                   $this->success("导入成功");
                }else{
                    $this->error("导入失败,原因可能是excel表中格式错误","5");// 提示错误
                   }
                }
            }else {
              $this->display(); 
            }    

     }

PHPExcel 类下载地址:

链接:https://pan.baidu.com/s/1FAuKLhaHOBYA3jK23rqq5g 
提取码:hzzo 
 

在ThinkPHP 3.2版本中连接达梦(DM)数据库,你可以按照以下步骤操作: 1. **设置环境变量**: - 如果你是通过PHP CLI (命令行) 运行ThinkPHP应用,确保已经设置了`APP_MODE`为`'cli'`,这有助于防止默认加载的日志和缓存组件影响到数据库连接。 2. **配置数据库信息**: - 在ThinkPHP项目的`Application/Common/Conf/config.php`文件中,你需要添加一个新的数据库配置。在数组的`database`部分,为达梦数据库创建一个新的键,比如`db_dm`,并设置相应的属性: ```php 'database' => array( // ... 其他已有的数据库配置(如 default 或者其他常规数据库) 'db_dm' => array( 'type' => 'PDO_DMDB', // 达梦数据库类型 'hostname' => 'localhost', // 数据库主机名 'username' => 'your_username', // 用户名 'password' => 'your_password', // 密码 'dbname' => 'your_database_name', // 数据库名称 'charset' => 'utf8', // 字符集,根据实际情况调整 'pconnect' => false, // 连接方式,默认为false 'port' => '端口号', // 如果不是默认端口,需要指定 'dsn' => '', // 使用DSN字符串代替上述字段 ), ), ``` - 注意替换上述占位符为实际的数据库连接信息。 3. **连接初始化**: - ThinkPHP会自动从配置文件中读取数据库配置,并在运行时建立连接。如果你的应用需要多次连接到不同的数据库,可以根据不同的需求选择对应的配置。 4. **错误处理**: - 当连接失败时,可能会抛出异常,记得捕获并记录这类异常,以便调试。 5. **使用数据库服务**: - 在你的模型(Model)类中,通过`Db`助手函数访问数据库,例如: ```php $model = M('YourTable'); $data = $model->select(); ``` 6. **连接池优化**: - 如果有大量并发请求,考虑启用连接池,以提高性能和资源管理。 **相关问题--:** 1. 怎样在TP3.2中管理数据库连接池? 2. 达梦数据库有哪些特殊的数据类型需要注意? 3. TP3.2如何处理达梦数据库的事务?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值