php读取txt并写入数据库,php读取txt文件组成SQL并插入数据库的方法
/**
* $splitChar 字段分隔符
* $file 数据文件文件名
* $table 数据库表名
* $conn 数据库连接
* $fields 数据对应的列名
* $insertType 插入操作类型,包括INSERT,REPLACE
* 搜集整理:bbs.it-home.org
*/
function loadTxtDataIntoDatabase($splitChar,$file,$table,$conn,$fields=array(),$insertType='INSERT'){
if(empty($fields)) $head = "{$insertType} INTO `{$table}` VALUES('";
else $head = "{$insertType} INTO `{$table}`(`".implode('`,`',$fields)."`) VALUES('"; //数据头
$end = "')";
$sqldata = trim(file_get_contents($file));
if(preg_replace('/\s*/i','',$splitChar) == '') {
$splitChar = '/(\w+)(\s+)/i';
$replace = "$1','";
$specialFunc = 'preg_replace';
}else {
$splitChar = $splitChar;
$replace = "','";
$specialFunc = 'str_replace';
}
//处理数据体,二者顺序不可换,否则空格或Tab分隔符时出错
$sqldata = preg_replace('/(\s*)(\n+)(\s*)/i','\'),(\'',$sqldata); //替换换行
$sqldata = $specialFunc($splitChar,$replace,$sqldata); //替换分隔符
$query = $head.$sqldata.$end; //数据拼接
if(mysql_query($query,$conn)) return array(true);
else {
return array(false,mysql_error($conn),mysql_errno($conn));
}
}
//调用示例1
require 'db.php';
$splitChar = '|'; //竖线
$file = 'sqldata1.txt';
$fields = array('id','parentid','name');
$table = 'cengji';
$result = loadTxtDataIntoDatabase($splitChar,$file,$table,$conn,$fields);
if (array_shift($result)){
echo 'Success!
';
}else {
echo 'Failed!--Error:'.array_shift($result).'
';
}
/*sqlda ta1.txt
|0|A
|1|B
|1|C
|2|D
-- cengji
CREATE TABLE `cengji` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parentid` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `parentid_name_unique` (`parentid`,`name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1602 DEFAULT CHARSET=utf8
*/
//调用示例2
require 'db.php';
$splitChar = ' '; //空格
$file = 'sqldata2.txt';
$fields = array('id','make','model','year');
$table = 'cars';
$result = loadTxtDataIntoDatabase($splitChar,$file,$table,$conn,$fields);
if (array_shift($result)){
echo 'Success!
';
}else {
echo 'Failed!--Error:'.array_shift($result).'
';
}
/* sqldata2.txt
Aston DB19 2009
Aston DB29 2009
Aston DB39 2009
-- cars
CREATE TABLE `cars` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`make` varchar(16) NOT NULL,
`model` varchar(16) DEFAULT NULL,
`year` varchar(16) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8
*/
//调用示例3
require 'db.php';
$splitChar = ' '; //Tab
$file = 'sqldata3.txt';
$fields = array('id','make','model','year');
$table = 'cars';
$insertType = 'REPLACE';
$result = loadTxtDataIntoDatabase($splitChar,$file,$table,$conn,$fields,$insertType);
if (array_shift($result)){
echo 'Success!
';
}else {
echo 'Failed!--Error:'.array_shift($result).'
';
}
/* sqldata3.txt
Aston DB19 2009
Aston DB29 2009
Aston DB39 2009
*/
//调用示例3
require 'db.php';
$splitChar = ' '; //Tab
$file = 'sqldata3.txt';
$fields = array('id','value');
$table = 'notExist'; //不存在表
$result = loadTxtDataIntoDatabase($splitChar,$file,$table,$conn,$fields);
if (array_shift($result)){
echo 'Success!
';
}else {
echo 'Failed!--Error:'.array_shift($result).'
';
}
//附:db.php
/* //注释这一行可全部释放
?>
static $connect = null;
static $table = 'jilian';
if(!isset($connect)) {
$connect = mysql_connect("localhost","root","");
if(!$connect) {
$connect = mysql_connect("localhost","Zjmainstay","");
}
if(!$connect) {
die('Can not connect to database.Fatal error handle by /test/db.php');
}
mysql_select_db("test",$connect);
mysql_query("SET NAMES utf8",$connect);
$conn = &$connect;
$db = &$connect;
}
?>
php读取txt并写入数据库,php读取txt文件组成SQL并插入数据库的方法相关推荐
- POI:从Excel文件中读取数据,向Excel文件中写入数据,将Excel表格中的数据插入数据库,将数据库中的数据添加到Excel表
POI 简介: POI是Apache软件基金会用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能. ...
- ftp读取文件并处理数据插入数据库
{FTPClient ftpClient = new FTPClient();try {//生成文件名(我这里是生成了具体的文件夹名,不知道的话可以遍历取)Calendar cal=Calendar. ...
- 基于SSM框架实现文件上传并插入数据库
大学刚毕业,进入公司之后,师傅要求在已有的项目上增加Excel表格导入数据的功能,借此机会将遇到的问题做一个简单的总结. 在实现该功能时先对实现思路进行梳理. 1.获取Excel数据 2.对获取到的数 ...
- php长传文件到数据库,php上传文件并存储到mysql数据库的简单示例
这篇文章主要为大家详细介绍了php上传文件并存储到mysql数据库的简单示例,具有一定的参考价值,可以用来参考一下. 对php上传文件并存储到mysql数据库感兴趣的小伙伴,下面一起跟随512笔记的小 ...
- MySQL8.0 通过data文件和SQL语句恢复数据库
一.通过data文件恢复data里的数据库 Mysql里的数据一般会自动保存到C:\ProgramData\MySQL\MySQL Server 8.0\Data目录下,卸载前要将其备份. 目前进测试 ...
- MySQL数据库基础:安装+登入+SQL操作语句+数据库授权、备份、恢复+其他操作
MySQL简介 MySQL最流行的RDBMS(关系型数据库系统),特别是在WEB应用方面,表现特点 数据以表格的形式出现 每行为各种记录名称 每列为记录名称所对应的数据域 许多的行和列组成一张表单 若 ...
- 编码-数据库不支持特殊符号,特殊符号插入数据库报错解决方法
一般字符串我们都是用UTF8得字符集 今天遇到了一个问题,特殊符号在插入数据库得时候报错了 同事跟我说是字符集得问题,utf8改为utf8mb4就可以了 接下来我们来说说原因: mysql支持的 ut ...
- 读取ppt并存入数据库_Java解析Excel文件并把数据存入数据库
前段时间做一个小项目,为了同时存储多条数据,其中有一个功能是解析Excel并把其中的数据存入对应数据库中.花了两天时间,不过一天多是因为用了"upload"关键字作为URL从而导致 ...
- phpexcel 读取excel文件在将数据插入数据库
public function acIndex(){$fileName = "C:\Users\**\Desktop\省市区编码 .xlsx";if (!file_exists($ ...
最新文章
- Windows Server 排错和发帖求助必读
- TabHost的使用(一)
- python最长回文子串leetcode_Python版LeetCode5. 最长回文子串
- 数据库---表的操作
- Sql—表格的建立,删除,数据的建立与删除-总结篇
- html bootstrap复选框全选,javascript+bootstrap+html实现层级多选框全层全选和多选功能代码实例...
- python机器学习算法.mobi_机器学习之ID3算法详解及python代码实现
- Android View体系(五)从源码解析View的事件分发机制
- 为了不把黑人兄弟认作大猩猩,谷歌的算法连真的大猩猩都不认识了
- 如何保证软件质量?汽车软件基于模型开发的十个问题与质量工具推荐
- 安川g7接线端子图_安川G7(IP)+蓝光STB板同步
- 爬虫应对银行安全控件-实践
- USB 转 RS-485 / 422 接口转换器
- Windows XP 全攻略
- 【U8+】数据库清空U8+admin密码
- codeforces 884F 费用流,图解很清晰
- html/css横向竖向导航栏的绘制
- vue实现微信公众号微信登录
- 初次使用ISE和vivado软件的驱动digilent安装问题
- 力扣(LeetCode)数据库最新44题190526Oracle版(2)
热门文章
- 世博、城市云和2020
- 135.137.138.139.445端口分析
- Netty Pipeline源码分析(2)
- 运维中的日志切割操作梳理(Logrotate/python/shell脚本实现)
- svn idea使用
- cidaemon.exe进程cpu占用率高及关闭cidaemon.exe进程方法
- 开源网站Open-Open
- Linux(ubuntu)下安装JDK
- 1.1.3 以类为单位的编程思想
- sql数据类型转换(cast() and convent())函数)