首页 / PHP / PHPexcel 导入import 数据到 mysql: mysql 查询数据是否存在, 如果存在返回id, 不存在, 插入返回id. 2) mysql_query , mysql_connect, mysql_select_db, mysql_error, mysql_num_rows,mysql_close
PHPexcel 导入import 数据到 mysql: mysql 查询数据是否存在, 如果存在返回id, 不存在, 插入返回id. 2) mysql_query , mysql_connect, mysql_select_db, mysql_error, mysql_num_rows,mysql_close
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHPexcel 导入import 数据到 mysql: mysql 查询数据是否存在, 如果存在返回id, 不存在, 插入返回id. 2) mysql_query , mysql_connect, mysql_select_db, mysql_error, mysql_num_rows,mysql_close,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含9911字,纯文字阅读大概需要15分钟。
内容图文
一: 要求:
上面的图表 中的数据插入到 3张表中.
1)t_vide_warehourse 分类表:
此表中包含 一级分类 和二级分类. 二级分类是一级分类的子级.
2)t_video_info 包名表
此表 管理 第一张表. 并且 只有 第二次分类 才可以有 包 名 .
一个二级分类下 可以 有多个包.
3)t_video_file 文件表.
此表 关联 第二张表; 一个 包 下 可以 有多个文件.
-----------------------------------------------------------------------------------------------
情况1:
上面: 第二级分类 就是 [教育培训], 包名 是 [计算机培训], 文件名是 [Android开发初级课程SQLite数据库介绍]
情况2:
上面: 二级分类 名 是 [其他], 包名是 [Photoshop CS6一对一教程], 文件名是 [01-01 Photoshopcs6安装方法]
情况3:
这种分类是空白的 数据 ,就排除掉. 不插入到数据库.
二: 导入到数据库的主题文件.
因为一个excel文件包含了 17个sheet ,太大了. 所以我们一个一个sheet的导入.
----------------
目录结构:
----------------------------------
1. file01.php
1 <?php 2// ini_set (‘memory_limit‘, ‘-1‘); 3/***************读取excel文件**************/ 4require_once ‘PHPExcel_1.8.0/Classes/PHPExcel/IOFactory.php‘; 5 6// echo "停止运行!"; 7 // die; 8 9 10$execlName = ‘01.xlsx‘; 11$firstCateName = "计算机"; 12 13// $execlName = ‘02.xlsx‘; 14 // $firstCateName = "金融、会计"; 15 16 // $execlName = ‘03.xlsx‘; 17 // $firstCateName = "就业创业"; 18 19 // $execlName = ‘04.xlsx‘; 20 // $firstCateName = "学前教育"; 21 22 // $execlName = ‘05.xlsx‘; 23 // $firstCateName = "烹饪"; 24 25 // $execlName = ‘06.xlsx‘; 26 // $firstCateName = "电子商务"; 27 28 // $execlName = ‘07.xlsx‘; 29 // $firstCateName = "党政“两学一做”"; 30 31 // $execlName = ‘08.xlsx‘; 32 // $firstCateName = "美术"; 33 34 // $execlName = ‘09.xlsx‘; 35 // $firstCateName = "体育锻炼"; 36 37 // $execlName = ‘10.xlsx‘; 38 // $firstCateName = "英语学习"; 39 40 // $execlName = ‘11.xlsx‘; 41 // $firstCateName = "物联网"; 42 43 // $execlName = ‘12.xlsx‘; 44 // $firstCateName = "个人提升"; 45 46 // $execlName = ‘13.xlsx‘; 47 // $firstCateName = "国学"; 48 49 // $execlName = ‘14.xlsx‘; 50 // $firstCateName = "影视"; 51 52 // $execlName = ‘15.xlsx‘; 53 // $firstCateName = "音乐"; 54 55 // $execlName = ‘16.xlsx‘; 56 // $firstCateName = "艺术修养"; 57 58 // $execlName = ‘17.xlsx‘; 59 // $firstCateName = "养生"; 60 61 62 63 64 65$reader = PHPExcel_IOFactory::createReader(‘Excel2007‘); //设置以Excel5格式(Excel97-2003工作簿) 66$objPHPExcel = $reader->load($execlName); // 载入excel文件 67$objWorksheet = $objPHPExcel->getSheet(0); // 读取第一個工作表 68$highestRow = $objWorksheet->getHighestRow(); // 取得总行数 69 // $highestColumm = $objWorksheet->getHighestColumn(); // 取得总列数 70 71$highestColumm = ‘K‘; // 取得总列数 72 73 74 // echo ‘总行数‘.$highestRow."总列数:".$highestColumm; 75 76/************ 循环读取每个单元格的数据 *********************/ 77 78 79//行数是以第2行开始: A2,B2,C2....----> A10,B10,C10...-----> 80for ($row = 2; $row <= $highestRow; $row++) 81 { 82for ($column = ‘A‘; $column <= $highestColumm; $column++) 83 {//列数是以A列开始 84 85 86 //取得一个单元格的值 87$cell = $objWorksheet->getCell($column.$row)->getValue(); 88//富文本对象 转为 字符串 89if($cell instanceof PHPExcel_RichText) 90 { 91$cell = $cell->__toString(); 92 } 93 94 95//$oneData 是一条记录 96$oneData[] = $cell; 97 98 } 99100//$data 是多条记录101$data[] = $oneData; 102//清空原来的一条记录103unset($oneData); 104 } 105106//上面取出$data是初始数据,还需要进行处理 107 // 108109110 // 去除 没有 分类的数据111foreach ($dataas$key => $value) 112 { 113if(empty($value[2])) 114 { 115unset($data[$key]); 116 } 117 } 118119// echo "<pre>"; 120 // print_r($data); 121122123124125 //1: 添加一级分类, 二级分类, 包名:126foreach ($dataas$k => $v) 127 { 128//一级分类:129$v[0] = $firstCateName; 130131$arr = explode(‘->‘, $v[2]); 132133if (count($arr) == 1) 134 { 135//二级分类:136$v[1] = ‘其他‘; 137138//包名:139 } 140else141 { 142//二级分类:143$v[1] = $arr[1]; 144145//包名:146$v[2] = $arr[2]; 147 } 148149150151$data1[] = $v; 152 } 153154// echo "<pre>"; 155 // print_r($data); 156 // print_r($data1); 157158159 //2: 获取 一级分类id; 二级分类id, 包id; 如果没有, 就插入返回的id160include_once ‘test.php‘; 161162foreach ($data1as$k => $v) 163 { 164//1: 插入一级分类:165$firstCateName = $v[0]; 166$firstCateId = insertFrist($firstCateName); 167168//2: 插入二级分类:169$secondCateName = $v[1]; 170$secondCateId = insertSecond($secondCateName, $firstCateId); 171172//3: 插入info表: 包名:173$baoName = $v[2]; 174$path = ‘/Course/CourseImage/‘.$v[5]; 175$infoId = insertInfo($baoName, $path, $secondCateId); 176177//4: 插入文件:178$fileName = $v[3]; 179$imagePath = ‘/Course/CourseImage/‘.$v[5]; 180$keywords = $v[6]; 181$fileType = substr($v[4],strrpos($v[4],‘.‘)+1); 182$filePath = ‘/files/video/‘.$v[4]; 183 insertFile($infoId, $fileName, $imagePath, $keywords, $fileType, $filePath); 184185 } 186187188echo$firstCateName. ‘导入完毕!‘; 189190191192193194195196197198199200201202/*******************函数**********************/203204205206207208 ?>
注意:
因为格式是 .xlsx 所以 这里是 Excel2007 , 不是 Excel5
2. test.php
插入数据库函数.
1 <?php 2 3 4 5 6 7// var_dump(insertFrist(‘英语1‘)); 8 9 // var_dump(insertSecond(‘英语1-1‘, 153309)); 10 // var_dump(insertSecond(‘英语1-2‘, 153309)); 11 // var_dump(insertSecond(‘测试‘, 153309)); 12 13 // var_dump(insertFrist(‘英语2‘)); 14 // var_dump(insertSecond(‘测试‘, 153313)); 15 16 // var_dump(insertInfo(‘包3‘, ‘/coure/test/01.png‘,153314)); 17 // var_dump(insertInfo(‘包3‘, ‘/coure/test/01.png‘,153315)); 18 // 19 // var_dump(insertFile(111, ‘测试文件2‘, ‘/course/test/01.jpg‘, ‘haha, gest,test‘, ‘flv‘, ‘/course/video/01.flv‘)); 20 21/*******************函数**********************/ 22 23 24function insertFrist($firstCateName) 25 { 26 27$firstCateName = trim($firstCateName); 28 29$dbhost = ‘127.0.0.1‘; // mysql服务器主机地址 30$dbuser = ‘root‘; // mysql用户名 31$dbpass = ‘‘; // mysql用户名密码 32$conn = mysql_connect($dbhost, $dbuser, $dbpass); 33if(! $conn ) 34 { 35die(‘Could not connect: ‘ . mysql_error()); 36 } 37 38mysql_select_db(‘testvideo‘, $conn); 39// 设置编码,防止中文乱码 40mysql_query("set names utf8", $conn); 41 42$sql = "SELECT * FROM t_vide_warehourse WHERE RW_NAME = ‘" .$firstCateName. "‘ AND RW_PARENT_ID = 0 "; 43$result = mysql_query( $sql, $conn ); 44if(! $result ) 45 { 46die(‘Could not get data: ‘ . mysql_error()); 47 } 48else 49 { 50$num = mysql_num_rows($result); 51 52if ($num == 0) 53 { 54$sql = "INSERT INTO t_vide_warehourse (RW_NAME, RW_PARENT_ID) VALUES (‘" .$firstCateName. "‘, 0)"; 55if (mysql_query($sql, $conn)) { 56returnmysql_insert_id(); 57 }else{ 58echo "插入一级出错". mysql_error(); 59 } 60 } 61else 62 { 63while ($row = mysql_fetch_array($result) ) 64 { 65return$row["VIDEO_RW_ID"]; 66 } 67 } 68 69 } 70 71 72//查询 73mysql_close($conn); 74 } 75 76 77function insertSecond($secondCateName, $firstCateId) 78 { 79 80$secondCateName = trim($secondCateName); 81 82$dbhost = ‘127.0.0.1‘; // mysql服务器主机地址 83$dbuser = ‘root‘; // mysql用户名 84$dbpass = ‘‘; // mysql用户名密码 85$conn = mysql_connect($dbhost, $dbuser, $dbpass); 86if(! $conn ) 87 { 88die(‘Could not connect: ‘ . mysql_error()); 89 } 90 91mysql_select_db(‘testvideo‘, $conn); 92// 设置编码,防止中文乱码 93mysql_query("set names utf8", $conn); 94 95$sql = "SELECT * FROM t_vide_warehourse WHERE RW_NAME = ‘" .$secondCateName. "‘ AND RW_PARENT_ID = $firstCateId "; 96$result = mysql_query( $sql, $conn ); 97if(! $result ) 98 { 99die(‘Could not get data: ‘ . mysql_error()); 100 } 101else102 { 103$num = mysql_num_rows($result); 104105if ($num == 0) 106 { 107$sql = "INSERT INTO t_vide_warehourse (RW_NAME, RW_PARENT_ID) VALUES (‘" .$secondCateName. "‘, $firstCateId)"; 108if (mysql_query($sql, $conn)) { 109returnmysql_insert_id(); 110 }else{ 111echo "插入二级级出错". mysql_error(); 112 } 113 } 114else115 { 116while ($row = mysql_fetch_array($result) ) 117 { 118return$row["VIDEO_RW_ID"]; 119 } 120 } 121122 } 123124125//查询126mysql_close($conn); 127 } 128129function insertInfo($baoName, $path, $secondCateId) 130 { 131132$baoName = trim($baoName); 133$path = trim($path); 134135$dbhost = ‘127.0.0.1‘; // mysql服务器主机地址136$dbuser = ‘root‘; // mysql用户名137$dbpass = ‘‘; // mysql用户名密码138$conn = mysql_connect($dbhost, $dbuser, $dbpass); 139if(! $conn ) 140 { 141die(‘Could not connect: ‘ . mysql_error()); 142 } 143144mysql_select_db(‘testvideo‘, $conn); 145// 设置编码,防止中文乱码146mysql_query("set names utf8", $conn); 147148$sql = "SELECT * FROM t_video_info WHERE VIDEO_TITLE = ‘" .$baoName. "‘ AND RW_ID = $secondCateId "; 149$result = mysql_query( $sql, $conn ); 150if(! $result ) 151 { 152die(‘Could not get data: ‘ . mysql_error()); 153 } 154else155 { 156$num = mysql_num_rows($result); 157158if ($num == 0) 159 { 160$sql = "INSERT INTO t_video_info (VIDEO_TITLE,PATH, RW_ID) VALUES (‘" .$baoName. "‘, ‘" .$path. "‘, $secondCateId)"; 161if (mysql_query($sql, $conn)) { 162returnmysql_insert_id(); 163 }else{ 164echo "插入info出错". mysql_error(); 165 } 166 } 167else168 { 169while ($row = mysql_fetch_array($result) ) 170 { 171return$row["VIDEO_ID"]; 172 } 173 } 174175 } 176177178//查询179mysql_close($conn); 180 } 181182function insertFile($infoId, $fileName, $imagePath, $keywords, $fileType, $filePath) 183 { 184185$fileName = trim($fileName); 186$imagePath = trim($imagePath); 187$keywords = trim($keywords); 188$fileType = trim($fileType); 189$filePath = trim($filePath); 190191$dbhost = ‘127.0.0.1‘; // mysql服务器主机地址192$dbuser = ‘root‘; // mysql用户名193$dbpass = ‘‘; // mysql用户名密码194$conn = mysql_connect($dbhost, $dbuser, $dbpass); 195if(! $conn ) 196 { 197die(‘Could not connect: ‘ . mysql_error()); 198 } 199200mysql_select_db(‘testvideo‘, $conn); 201// 设置编码,防止中文乱码202mysql_query("set names utf8", $conn); 203204$sql = "INSERT INTO t_video_file (VIDEO_ID, FILE_NAME, IMAGEPATH, KEYWORDS, FILE_TYPE, FILE_PATH) VALUES ($infoId, ‘" .$fileName. "‘, ‘" .$imagePath. "‘, ‘" .$keywords. "‘, ‘" .$fileType. "‘, ‘" .$filePath. "‘)"; 205206// echo $sql;207208if (mysql_query($sql, $conn)) { 209returnmysql_insert_id(); 210 }else{ 211echo "插入文件出错". mysql_error(); 212 } 213214215216217218219//查询220mysql_close($conn); 221 } 222223224225226 ?>
这里4个函数:
1) insertFrist 给 第一张表插入 第一级分类, 如果重复,返回已有id ; 不重复, 插入,返回新的id;
2)insertSecond 给第一张表 插入 二级分类, 如果重复, 返回已有id; 不重复, 插入,返回新的id;
3)insertInfo 给第二张表插入 数据, 如果重复, 返回已有id; 不重复, 插入,返回新的id;
4)insertFile 给第三张宝插入数据, 对于文件 ,不考虑文件名是否重复.
原文:http://www.cnblogs.com/cbza/p/7194031.html
内容总结
以上是互联网集市为您收集整理的PHPexcel 导入import 数据到 mysql: mysql 查询数据是否存在, 如果存在返回id, 不存在, 插入返回id. 2) mysql_query , mysql_connect, mysql_select_db, mysql_error, mysql_num_rows,mysql_close全部内容,希望文章能够帮你解决PHPexcel 导入import 数据到 mysql: mysql 查询数据是否存在, 如果存在返回id, 不存在, 插入返回id. 2) mysql_query , mysql_connect, mysql_select_db, mysql_error, mysql_num_rows,mysql_close所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。