db; $sql = "select * from `database`"; $databaseInfo = $db->createCommand($sql)->queryAll(); foreach($databaseInfo as $key => $value){ try{ $tempDsn = "mysql:host={$value['database_host']};dbname={$value['database_name']};"; $tempDbh = new PDO($tempDsn,$value['database_user'],$value['database_password'],array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES "utf8";')); // $bool = $this->addData($tempDsn,$tempDbh); $bool = $this->delData($tempDbh); echo $value['database_name'].' insert data '.($bool?'success':'faile').PHP_EOL; } catch (PDOException $ex) { echo $value['database_name'].' connect faile'.PHP_EOL; } } } public function delData($tempDbh){ //清空表 $tempDbh->exec("TRUNCATE TABLE product_setting"); $bool = $tempDbh->exec("TRUNCATE TABLE product_class_relation"); return true; } public function addData($tempDsn,$tempDbh) { // $tempDsn = 'mysql:host=192.168.1.234:3306;dbname=spider_school_118;'; // $tempDbh = new PDO($tempDsn,'spider','cJ7QvRWSKbMYun7U',array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES "utf8";')); $classInfo = $tempDbh->query('SELECT * FROM `class`')->fetchAll(PDO::FETCH_ASSOC); //清空表 $tempDbh->exec("TRUNCATE TABLE product_setting"); $tempDbh->exec("TRUNCATE TABLE product_class_relation"); $classRelPro = array();//产品关联班级索引 $classRelSemester = array(); foreach($classInfo as $value){ $classRelSemester[$value['class_id']] = $value['semester_id']; $this->getPerVersionRelClass($value,$classRelPro); } //插入product_setting数据 $productVer = $this->getPerVersion(); $setIdRelSetType = array(); foreach($productVer as $key => $value){ $i = 2; foreach($value as $k => $v){ //没有班级使用则不添加产品,默认版本必须添加 if(isset($classRelPro[$key.'_'.$k]) || $k==0){ if($k>0){ $v['name'] = "版本".$i; $i++; } $sql = "INSERT INTO `product_setting` VALUES (0,'".$v['name']."',".$v['product_type'].",".$v['show_map'].",".$v['show_kp'].",".$v['show_wrg_origin'].",".$v['show_wrg_analyze'].",".$v['show_guide'].",'".$v['st_tuozhan']."','".$v['st_wrong']."','".$v['st_reduce']."',".$v['show_level'].",".$v['create_time'].",".$v['is_default'].")"; $bool = $tempDbh->exec($sql); $versionRelPsId[$key.'_'.$k] = (int)$tempDbh->lastInsertId(); $classRelSetType[$versionRelPsId[$key.'_'.$k]] = $v['product_type']; } } } //插入product_class_relation数据 $sql = "INSERT INTO `product_class_relation` (ps_id, class_id, semester_id, set_type) VALUES "; $valueArr = array(); foreach($classRelPro as $key => $value){ if(isset($versionRelPsId[$key]) && $versionRelPsId[$key] > 0){ foreach($value as $k => $v){ $semesterId = isset($classRelSemester[$v])?$classRelSemester[$v]:0; $setType = isset($classRelSetType[$versionRelPsId[$key]])?$classRelSetType[$versionRelPsId[$key]]:0; $valueArr[] = " ({$versionRelPsId[$key]},'{$v}',$semesterId,$setType) "; } } } $sqlValue = implode(',', $valueArr); $sql2 = $sql.$sqlValue; $bool = $tempDbh->exec($sql2); return true; } /** * 新老版本对应关系 错题本类型 0:精简版 1:完整版 提分方案类型 0:精简版 1:完整版 分层提分方案类型 0:个性 1:分层 */ public function getPerVersionRelClass($oldVersion,&$classRelPro){ // $oldVersion = array( // 'class_id' => 0, // 'wrong_book_type' => 0, // 'improve_book_type' => 0, // 'wb_isp_version' => 0, // ); //错题本 if($oldVersion['wrong_book_type'] == 1){ $productIndex = '1_0'; $classRelPro[$productIndex][] = $oldVersion['class_id']; }elseif($oldVersion['wrong_book_type'] == 0){ $productIndex = '1_1'; $classRelPro[$productIndex][] = $oldVersion['class_id']; } //个性化学习方案 if($oldVersion['improve_book_type'] == 1 && $oldVersion['wb_isp_version'] == 0){ $productIndex = '2_0'; $classRelPro[$productIndex][] = $oldVersion['class_id']; }elseif($oldVersion['improve_book_type'] == 0 && $oldVersion['wb_isp_version'] == 0){ $productIndex = '2_1'; $classRelPro[$productIndex][] = $oldVersion['class_id']; }elseif($oldVersion['improve_book_type'] == 1 && $oldVersion['wb_isp_version'] == 1){ $productIndex = '2_2'; $classRelPro[$productIndex][] = $oldVersion['class_id']; }elseif($oldVersion['improve_book_type'] == 0 && $oldVersion['wb_isp_version'] == 1){ $productIndex = '2_3'; $classRelPro[$productIndex][] = $oldVersion['class_id']; } //个性化学习方案 if($oldVersion['improve_book_type'] == 1 && $oldVersion['wb_isp_version'] == 0){ $productIndex = '3_0'; $classRelPro[$productIndex][] = $oldVersion['class_id']; }elseif($oldVersion['improve_book_type'] == 0 && $oldVersion['wb_isp_version'] == 0){ $productIndex = '3_1'; $classRelPro[$productIndex][] = $oldVersion['class_id']; }elseif($oldVersion['improve_book_type'] == 1 && $oldVersion['wb_isp_version'] == 1){ $productIndex = '3_2'; $classRelPro[$productIndex][] = $oldVersion['class_id']; }elseif($oldVersion['improve_book_type'] == 0 && $oldVersion['wb_isp_version'] == 1){ $productIndex = '3_3'; $classRelPro[$productIndex][] = $oldVersion['class_id']; } } //预设版本 public function getPerVersion(){ //1-错题本 2-个性化学习方案 3-个性化学习宝 $time = time(); $productVer = array( 1 => array( 0 => array( 'name' => '版本1', 'product_type' => 1,//1-错题本 2-个性化学习方案 3-个性化学习宝 'show_map' => 1,//显示成长轨迹 1-是 0-否 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否 'show_wrg_origin' => 1,//显示错题原型 1-是 0-否 'show_wrg_analyze' => 1,//显示错因分析 1-是 0-否 'show_guide' => 1,//显示名师指导 1-是 0-否 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生 'st_wrong' => '',//错题本过滤难题 'st_reduce' => '',//减少提分题 'show_level' => 0,//提分题分层 1-是 0-否 'create_time' => $time,//创建时间 'is_default' => 1,//是否默认设置 1-是 0-否 ), 1 => array( 'name' => '版本2', 'product_type' => 1,//1-错题本 2-个性化学习方案 3-个性化学习宝 'show_map' => 1,//显示成长轨迹 1-是 0-否 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否 'show_wrg_origin' => 1,//显示错题原型 1-是 0-否 'show_wrg_analyze' => 1,//显示错因分析 1-是 0-否 'show_guide' => 1,//显示名师指导 1-是 0-否 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生 'st_wrong' => '4',//错题本过滤难题 'st_reduce' => '',//减少提分题 'show_level' => 0,//提分题分层 1-是 0-否 'create_time' => $time,//创建时间 'is_default' => 0,//是否默认设置 1-是 0-否 ), ), 2 => array( 0 => array( 'name' => '版本1', 'product_type' => 2,//1-错题本 2-个性化学习方案 3-个性化学习宝 'show_map' => 1,//显示成长轨迹 1-是 0-否 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否 'show_wrg_origin' => 0,//显示错题原型 1-是 0-否 'show_wrg_analyze' => 0,//显示错因分析 1-是 0-否 'show_guide' => 0,//显示名师指导 1-是 0-否 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生 'st_wrong' => '',//错题本过滤难题 'st_reduce' => '',//减少提分题 'show_level' => 0,//提分题分层 1-是 0-否 'create_time' => $time,//创建时间 'is_default' => 1,//是否默认设置 1-是 0-否 ), 1 => array( 'name' => '版本2', 'product_type' => 2,//1-错题本 2-个性化学习方案 3-个性化学习宝 'show_map' => 1,//显示成长轨迹 1-是 0-否 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否 'show_wrg_origin' => 0,//显示错题原型 1-是 0-否 'show_wrg_analyze' => 0,//显示错因分析 1-是 0-否 'show_guide' => 0,//显示名师指导 1-是 0-否 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生 'st_wrong' => '',//错题本过滤难题 'st_reduce' => '4',//减少提分题 'show_level' => 0,//提分题分层 1-是 0-否 'create_time' => $time,//创建时间 'is_default' => 0,//是否默认设置 1-是 0-否 ), 2 => array( 'name' => '版本3', 'product_type' => 2,//1-错题本 2-个性化学习方案 3-个性化学习宝 'show_map' => 1,//显示成长轨迹 1-是 0-否 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否 'show_wrg_origin' => 0,//显示错题原型 1-是 0-否 'show_wrg_analyze' => 0,//显示错因分析 1-是 0-否 'show_guide' => 0,//显示名师指导 1-是 0-否 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生 'st_wrong' => '',//错题本过滤难题 'st_reduce' => '',//减少提分题 'show_level' => 1,//提分题分层 1-是 0-否 'create_time' => $time,//创建时间 'is_default' => 0,//是否默认设置 1-是 0-否 ), 3 => array( 'name' => '版本4', 'product_type' => 2,//1-错题本 2-个性化学习方案 3-个性化学习宝 'show_map' => 1,//显示成长轨迹 1-是 0-否 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否 'show_wrg_origin' => 0,//显示错题原型 1-是 0-否 'show_wrg_analyze' => 0,//显示错因分析 1-是 0-否 'show_guide' => 0,//显示名师指导 1-是 0-否 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生 'st_wrong' => '',//错题本过滤难题 'st_reduce' => '4',//减少提分题 'show_level' => 1,//提分题分层 1-是 0-否 'create_time' => $time,//创建时间 'is_default' => 0,//是否默认设置 1-是 0-否 ), ), 3 => array( 0 => array( 'name' => '版本1', 'product_type' => 3,//1-错题本 2-个性化学习方案 3-个性化学习宝 'show_map' => 1,//显示成长轨迹 1-是 0-否 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否 'show_wrg_origin' => 1,//显示错题原型 1-是 0-否 'show_wrg_analyze' => 1,//显示错因分析 1-是 0-否 'show_guide' => 1,//显示名师指导 1-是 0-否 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生 'st_wrong' => '',//错题本过滤难题 'st_reduce' => '',//减少提分题 'show_level' => 0,//提分题分层 1-是 0-否 'create_time' => $time,//创建时间 'is_default' => 1,//是否默认设置 1-是 0-否 ), 1 => array( 'name' => '版本2', 'product_type' => 3,//1-错题本 2-个性化学习方案 3-个性化学习宝 'show_map' => 1,//显示成长轨迹 1-是 0-否 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否 'show_wrg_origin' => 1,//显示错题原型 1-是 0-否 'show_wrg_analyze' => 1,//显示错因分析 1-是 0-否 'show_guide' => 1,//显示名师指导 1-是 0-否 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生 'st_wrong' => '',//错题本过滤难题 'st_reduce' => '4',//减少提分题 'show_level' => 0,//提分题分层 1-是 0-否 'create_time' => $time,//创建时间 'is_default' => 0,//是否默认设置 1-是 0-否 ), 2 => array( 'name' => '版本3', 'product_type' => 3,//1-错题本 2-个性化学习方案 3-个性化学习宝 'show_map' => 1,//显示成长轨迹 1-是 0-否 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否 'show_wrg_origin' => 1,//显示错题原型 1-是 0-否 'show_wrg_analyze' => 1,//显示错因分析 1-是 0-否 'show_guide' => 1,//显示名师指导 1-是 0-否 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生 'st_wrong' => '',//错题本过滤难题 'st_reduce' => '',//减少提分题 'show_level' => 1,//提分题分层 1-是 0-否 'create_time' => $time,//创建时间 'is_default' => 0,//是否默认设置 1-是 0-否 ), 3 => array( 'name' => '版本4', 'product_type' => 3,//1-错题本 2-个性化学习方案 3-个性化学习宝 'show_map' => 1,//显示成长轨迹 1-是 0-否 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否 'show_wrg_origin' => 1,//显示错题原型 1-是 0-否 'show_wrg_analyze' => 1,//显示错因分析 1-是 0-否 'show_guide' => 1,//显示名师指导 1-是 0-否 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生 'st_wrong' => '',//错题本过滤难题 'st_reduce' => '4',//减少提分题 'show_level' => 1,//提分题分层 1-是 0-否 'create_time' => $time,//创建时间 'is_default' => 0,//是否默认设置 1-是 0-否 ), ), ); return $productVer; } }