这篇文章主要介绍了PHP上传Excel文件导入数据到MySQL数据库示例,可以将Excel的数据写入到MySQL数据库中,感兴趣的同学可以了解一下。
最近在做Excel文件导入数据到数据库。网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里面的数据内容到MySQL数据库的小程序。
要用到的工具:
ThinkPHP:轻量级国产PHP开发框架。可在ThinkPHP官网下载。
PHPExcel:Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可在CodePlex官网下载。、
1.设计MySQL数据库product
创建product数据库
CREATE DATABASE product DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
创建pro_info表,表结构
CREATE TABLE pro_info( pId int(4) NOT NULL PRIMARY KEY AUTO_INCREMENT, pName varchar(20) NOT NULL, pPrice float NOT NULL, pCount float NOT NULL );
2.生成项目
先在ThinkPHP同级目录下新建index.php文件,生成项目Home.
<?php define('APP_NAME', 'Home'); //项目名称 define('APP_PATH', './Home/'); //项目路径 define('APP_DEBUG', true); //开启DEBUG require './ThinkPHP/ThinkPHP.php'; //引入ThinkPHP核心运行文件 ?>
3.上传文件表单
在Home/Tpl文件夹下新建Index文件夹,里面新建index.html文件
<!DOCTYPE html> <html> <head> <title>上传文件</title> <meta charset="UTF-8"> </head> <body> <form id="upload" action="__URL__/upload/" method="post" enctype="multipart/form-data"> <label for="file">上传文件:</label> <input type="file" name="file" id="file"><br /> <input type="submit" name="submit" value="上传" /> </form> </body> </html>
4.在/Home/Lib/Action/IndexAction.class.php中编写显示上传表单页面、上传Excel文件、导入Excel文件方法(如果ThinkPHP/Extend下没有扩展包,需要在ThinkPHP官网下载,然后将扩展包解压放入)
<?php /** * * 导入Excel文件数据到MySQL数据库 */ class IndexAction extends Action { /** * 显示上传表单html页面 */ public function index() { $this->display(); } /** * 上传Excel文件 */ public function upload() { //引入ThinkPHP上传文件类 import('ORG.Net.UploadFile'); //实例化上传类 $upload = new UploadFile(); //设置附件上传文件大小200Kib $upload->mixSize = 2000000; //设置附件上传类型 $upload->allowExts = array('xls', 'xlsx', 'csv'); //设置附件上传目录在/Home/temp下 $upload->savePath = './Home/temp/'; //保持上传文件名不变 $upload->saveRule = ''; //存在同名文件是否是覆盖 $upload->uploadReplace = true; if (!$upload->upload()) { //如果上传失败,提示错误信息 $this->error($upload->getErrorMsg()); } else { //上传成功 //获取上传文件信息 $info = $upload->getUploadFileInfo(); //获取上传保存文件名 $fileName = $info[0]['savename']; //重定向,把$fileName文件名传给importExcel()方法 $this->redirect('Index/importExcel', array('fileName' => $fileName), 1, '上传成功!'); } } /** * * 导入Excel文件 */ public function importExcel() { header("content-type:text/html;charset=utf-8"); //引入PHPExcel类 vendor('PHPExcel'); vendor('PHPExcel.IOFactory'); vendor('PHPExcel.Reader.Excel5'); //redirect传来的文件名 $fileName = $_GET['fileName']; //文件路径 $filePath = './Home/temp/' . $fileName . '.xlsx'; //实例化PHPExcel类 $PHPExcel = new PHPExcel(); //默认用excel2007读取excel,若格式不对,则用之前的版本进行读取 $PHPReader = new PHPExcel_Reader_Excel2007(); if (!$PHPReader->canRead($filePath)) { $PHPReader = new PHPExcel_Reader_Excel5(); if (!$PHPReader->canRead($filePath)) { echo 'no Excel'; return; } } //读取Excel文件 $PHPExcel = $PHPReader->load($filePath); //读取excel文件中的第一个工作表 $sheet = $PHPExcel->getSheet(0); //取得最大的列号 $allColumn = $sheet->getHighestColumn(); //取得最大的行号 $allRow = $sheet->getHighestRow(); //从第二行开始插入,第一行是列名 for ($currentRow = 2; $currentRow <= $allRow; $currentRow++) { //获取B列的值 $name = $PHPExcel->getActiveSheet()->getCell("B" . $currentRow)->getValue(); //获取C列的值 $price = $PHPExcel->getActiveSheet()->getCell("C" . $currentRow)->getValue(); //获取D列的值 $count = $PHPExcel->getActiveSheet()->getCell("D" . $currentRow)->getValue(); $m = M('Info'); $num = $m->add(array('pName' => $name, 'pPrice' => $price, 'pCount' => $count)); } if ($num > 0) { echo "添加成功!"; } else { echo "添加失败!"; } } } ?>
5.测试
以上就是本文的全部内容,希望对大家的学习有所帮助。
相关推荐:
PHP中new self()与new static()的区别分析
以上是PHP上传Excel文件导入数据到MySQL数据库的详细内容。更多信息请关注PHP中文网其他相关文章!

Thedifferencebetweenunset()andsession_destroy()isthatunset()clearsspecificsessionvariableswhilekeepingthesessionactive,whereassession_destroy()terminatestheentiresession.1)Useunset()toremovespecificsessionvariableswithoutaffectingthesession'soveralls

stickysessensureuserRequestSarerOutedTothesMeServerForsessionDataConsisterency.1)sessionIdentificeAssificationAssigeaSsignAssignSignSuserServerServerSustersusiseCookiesorUrlModifications.2)一致的ententRoutingDirectSsssssubsequeSssubsequeSubsequestrequestSameSameserver.3)loadBellankingDisteributesNebutesneNewuserEreNevuseRe.3)

phpoffersvarioussessionsionsavehandlers:1)文件:默认,简单的ButMayBottLeneckonHigh-trafficsites.2)Memcached:高性能,Idealforsforspeed-Criticalapplications.3)REDIS:redis:similartomemememememcached,withddeddeddedpassistence.4)withddeddedpassistence.4)databases:gelifforcontrati forforcontrati,有用

PHP中的session是用于在服务器端保存用户数据以在多个请求之间保持状态的机制。具体来说,1)session通过session_start()函数启动,并通过$_SESSION超级全局数组存储和读取数据;2)session数据默认存储在服务器的临时文件中,但可通过数据库或内存存储优化;3)使用session可以实现用户登录状态跟踪和购物车管理等功能;4)需要注意session的安全传输和性能优化,以确保应用的安全性和效率。

PHPsessionsstartwithsession_start(),whichgeneratesauniqueIDandcreatesaserverfile;theypersistacrossrequestsandcanbemanuallyendedwithsession_destroy().1)Sessionsbeginwhensession_start()iscalled,creatingauniqueIDandserverfile.2)Theycontinueasdataisloade

绝对会话超时从会话创建时开始计时,闲置会话超时则从用户无操作时开始计时。绝对会话超时适用于需要严格控制会话生命周期的场景,如金融应用;闲置会话超时适合希望用户长时间保持会话活跃的应用,如社交媒体。

服务器会话失效可以通过以下步骤解决:1.检查服务器配置,确保会话设置正确。2.验证客户端cookies,确认浏览器支持并正确发送。3.检查会话存储服务,如Redis,确保其正常运行。4.审查应用代码,确保会话逻辑正确。通过这些步骤,可以有效诊断和修复会话问题,提升用户体验。

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3汉化版
中文版,非常好用

Dreamweaver Mac版
视觉化网页开发工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具