/**

* $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并插入数据库的方法相关推荐

  1. POI:从Excel文件中读取数据,向Excel文件中写入数据,将Excel表格中的数据插入数据库,将数据库中的数据添加到Excel表

    POI 简介: POI是Apache软件基金会用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能. ...

  2. ftp读取文件并处理数据插入数据库

    {FTPClient ftpClient = new FTPClient();try {//生成文件名(我这里是生成了具体的文件夹名,不知道的话可以遍历取)Calendar cal=Calendar. ...

  3. 基于SSM框架实现文件上传并插入数据库

    大学刚毕业,进入公司之后,师傅要求在已有的项目上增加Excel表格导入数据的功能,借此机会将遇到的问题做一个简单的总结. 在实现该功能时先对实现思路进行梳理. 1.获取Excel数据 2.对获取到的数 ...

  4. php长传文件到数据库,php上传文件并存储到mysql数据库的简单示例

    这篇文章主要为大家详细介绍了php上传文件并存储到mysql数据库的简单示例,具有一定的参考价值,可以用来参考一下. 对php上传文件并存储到mysql数据库感兴趣的小伙伴,下面一起跟随512笔记的小 ...

  5. MySQL8.0 通过data文件和SQL语句恢复数据库

    一.通过data文件恢复data里的数据库 Mysql里的数据一般会自动保存到C:\ProgramData\MySQL\MySQL Server 8.0\Data目录下,卸载前要将其备份. 目前进测试 ...

  6. MySQL数据库基础:安装+登入+SQL操作语句+数据库授权、备份、恢复+其他操作

    MySQL简介 MySQL最流行的RDBMS(关系型数据库系统),特别是在WEB应用方面,表现特点 数据以表格的形式出现 每行为各种记录名称 每列为记录名称所对应的数据域 许多的行和列组成一张表单 若 ...

  7. 编码-数据库不支持特殊符号,特殊符号插入数据库报错解决方法

    一般字符串我们都是用UTF8得字符集 今天遇到了一个问题,特殊符号在插入数据库得时候报错了 同事跟我说是字符集得问题,utf8改为utf8mb4就可以了 接下来我们来说说原因: mysql支持的 ut ...

  8. 读取ppt并存入数据库_Java解析Excel文件并把数据存入数据库

    前段时间做一个小项目,为了同时存储多条数据,其中有一个功能是解析Excel并把其中的数据存入对应数据库中.花了两天时间,不过一天多是因为用了"upload"关键字作为URL从而导致 ...

  9. phpexcel 读取excel文件在将数据插入数据库

    public function acIndex(){$fileName = "C:\Users\**\Desktop\省市区编码 .xlsx";if (!file_exists($ ...

最新文章

  1. Windows Server 排错和发帖求助必读
  2. TabHost的使用(一)
  3. python最长回文子串leetcode_Python版LeetCode5. 最长回文子串
  4. 数据库---表的操作
  5. Sql—表格的建立,删除,数据的建立与删除-总结篇
  6. html bootstrap复选框全选,javascript+bootstrap+html实现层级多选框全层全选和多选功能代码实例...
  7. python机器学习算法.mobi_机器学习之ID3算法详解及python代码实现
  8. Android View体系(五)从源码解析View的事件分发机制
  9. 为了不把黑人兄弟认作大猩猩,谷歌的算法连真的大猩猩都不认识了
  10. 如何保证软件质量?汽车软件基于模型开发的十个问题与质量工具推荐
  11. 安川g7接线端子图_安川G7(IP)+蓝光STB板同步
  12. 爬虫应对银行安全控件-实践
  13. USB 转 RS-485 / 422 接口转换器
  14. Windows XP 全攻略
  15. 【U8+】数据库清空U8+admin密码
  16. codeforces 884F 费用流,图解很清晰
  17. html/css横向竖向导航栏的绘制
  18. vue实现微信公众号微信登录
  19. 初次使用ISE和vivado软件的驱动digilent安装问题
  20. 力扣(LeetCode)数据库最新44题190526Oracle版(2)

热门文章

  1. 世博、城市云和2020
  2. 135.137.138.139.445端口分析
  3. Netty Pipeline源码分析(2)
  4. 运维中的日志切割操作梳理(Logrotate/python/shell脚本实现)
  5. svn idea使用
  6. cidaemon.exe进程cpu占用率高及关闭cidaemon.exe进程方法
  7. 开源网站Open-Open
  8. Linux(ubuntu)下安装JDK
  9. 1.1.3 以类为单位的编程思想
  10. sql数据类型转换(cast() and convent())函数)