失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)【PHP】

php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)【PHP】

时间:2018-11-09 05:42:54

相关推荐

php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)【PHP】

后端开发|php教程

txt,SQL

后端开发-php教程

/**

* $splitChar 字段分隔符

* $file 数据文件文件名

* $table 数据库表名

* $conn 数据库连接

* $fields 数据对应的列名

* $insertType 插入操作类型,包括INSERT,REPLACE

*/

uzcms镜像源码,安装ubuntu停在重启,tomcat三个小图标,爬虫咬伤皮肤,php外包程序员教程,企业seo设计lzw

<?php

/**

* $splitChar 字段分隔符

* $file 数据文件文件名

* $table 数据库表名

* $conn 数据库连接

* $fields 数据对应的列名

* $insertType 插入操作类型,包括INSERT,REPLACE

*/

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, ame);

$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

Aston DB29

Aston DB39

-- 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

Aston DB29

Aston DB39

*/

//调用示例3

require db.php;

$splitChar = ; //Tab

$file = sqldata3.txt;

$fields = array(id,value);

$table = otExist; //不存在表

$result = loadTxtDataIntoDatabase($splitChar,$file,$table,$conn,$fields);

if (array_shift($result)){

echo Success!

;

}else {

echo Failed!--Error:.array_shift($result).

;

}

//附:db.php

/* //注释这一行可全部释放

?>

<?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;

}

?>

//*/

数据表结构

源码怎么安装,废手机装ubuntu,爬虫与艺术之神,php 号,seo base标签lzw

-- 数据表结构:

-- 100000_insert,1000000_insert

CREATE TABLE `100000_insert` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`parentid` int(11) NOT NULL,

`name` varchar(255) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

100000 (10万)行插入:Insert 100000_line_data use 2.5534288883209 seconds

1000000(100万)行插入:Insert 1000000_line_data use 19.677318811417 seconds

//可能报错:MySQL server has gone away

//解决:修改my.ini/f max_allowed_packet=20M

作者:Zjmainstay

易语言下雪源码,安装ubuntu时登录,python爬虫怎么使用,php框架php7,seo高分策略lzw

如果觉得《php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)【PHP】》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。