真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php讀文件讀數(shù)據(jù)庫,php讀取數(shù)據(jù)庫內(nèi)容并輸出

php讀取txt文件寫入數(shù)據(jù)庫問題

?php

臨夏州網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)從2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

$file_dir="1.txt";

$fp=fopen($file_dir,"r");

$content=fread($fp,filesize($file_dir));//讀文件

fclose($fp);

function replaces($str)//為各字段添加''

{

foreach($str as $k=$v)

{

$str[$k]="'".trim($v)."'";

}

return $str;

}

function Get_item($tmp1,$tmp2,$cont,$sq)//取得sql語句;tmp1為記錄分割點,tmp2為字段分割點

{

$tmp_rows=explode($tmp1,$cont);

foreach($tmp_rows as $key=$value)

{

$tmp_rows2[$key]=replaces(explode($tmp2,trim($value)));

$sql[$key]=$sq.implode(",",$tmp_rows2[$key]).")\"";

}

return $sql;

}

$sq="\"insert into table1 (a1,a2,a3) values (";//sql的前半部分,要完善!

$sql=array();

$sql=Get_item("-"," ",$content,$sq);

//$db=mysql_connect("localhost","root","abc");//聯(lián)接mysql,自己加

//mysql_select_db(....

foreach($sql as $v)

{

mysql_query($v);//執(zhí)行sql;

}

//mysql_close($db);

?

或者生成一個1.sql文件,再把它導(dǎo)入mysql;

php怎么讀取txt文本內(nèi)容存入mysql數(shù)據(jù)庫

第一步,讀取txt的文件。假設(shè)為a.txt

$content = file_get_content('a.txt'); //讀取文件內(nèi)容存入變量。

第二步,存入數(shù)據(jù)庫

mysql_query("insert 表名 (字段名) values('".$content."'));

Ps:文件是上傳的,上傳后的臨時文件名是:$_FILE['tmp_name']

如何利用php讀取txt文件再將數(shù)據(jù)插入到數(shù)據(jù)庫

serial_number.txt的示例內(nèi)容:

serial_number.txt:

DM00001A11 0116,

SN00002A11 0116,

AB00003A11 0116,

PV00004A11 0116,

OC00005A11 0116,

IX00006A11 0116,

創(chuàng)建數(shù)據(jù)表:

create table serial_number(

id int primary key auto_increment not null,

serial_number varchar(50) not null

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

php代碼如下:

$conn = mysql_connect('127.0.0.1','root','') or die("Invalid query: " . mysql_error());

mysql_select_db('test', $conn) or die("Invalid query: " . mysql_error());

$content = file_get_contents("serial_number.txt");

$contents= explode(",",$content);//explode()函數(shù)以","為標識符進行拆分

foreach ($contents as $k = $v)//遍歷循環(huán)

{

$id = $k;

$serial_number = $v;

mysql_query("insert into serial_number (`id`,`serial_number`)

VALUES('$id','$serial_number')");

}

備注:方法有很多種,我這里是在拆分txt文件為數(shù)組后,然后遍歷循環(huán)得到的數(shù)組,每循環(huán)一次,往數(shù)據(jù)庫中插入一次。

再給大家分享一個支持大文件導(dǎo)入的

?php

/**

* $splitChar 字段分隔符

* $file 數(shù)據(jù)文件文件名

* $table 數(shù)據(jù)庫表名

* $conn 數(shù)據(jù)庫連接

* $fields 數(shù)據(jù)對應(yīng)的列名

* $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('"; //數(shù)據(jù)頭

$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';

}

//處理數(shù)據(jù)體,二者順序不可換,否則空格或Tab分隔符時出錯

$sqldata = preg_replace('/(\s*)(\n+)(\s*)/i','\'),(\'',$sqldata); //替換換行

$sqldata = $specialFunc($splitChar,$replace,$sqldata); //替換分隔符

$query = $head.$sqldata.$end; //數(shù)據(jù)拼接

if(mysql_query($query,$conn)) return array(true);

else {

return array(false,mysql_error($conn),mysql_errno($conn));

}

}

//調(diào)用示例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!br/';

}else {

echo 'Failed!--Error:'.array_shift($result).'br/';

}

/*sqlda ta1.txt

1|0|A

2|1|B

3|1|C

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

*/

//調(diào)用示例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!br/';

}else {

echo 'Failed!--Error:'.array_shift($result).'br/';

}

/* sqldata2.txt

11 Aston DB19 2009

12 Aston DB29 2009

13 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

*/

//調(diào)用示例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!br/';

}else {

echo 'Failed!--Error:'.array_shift($result).'br/';

}

/* sqldata3.txt

11 Aston DB19 2009

12 Aston DB29 2009

13 Aston DB39 2009

*/

//調(diào)用示例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!br/';

}else {

echo 'Failed!--Error:'.array_shift($result).'br/';

}

//附: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;

}

?

//*/

.

-- 數(shù)據(jù)表結(jié)構(gòu):

-- 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/my.cnf max_allowed_packet=20M

php 讀寫文件和數(shù)據(jù)庫哪個快

1、直接讀文件相比數(shù)據(jù)庫查詢效率更勝一籌,而且文中還沒算上連接和斷開的時間。

2、一次讀取的內(nèi)容越大,直接讀文件的優(yōu)勢會越明顯(讀文件時間都是小幅增長,這跟文件存儲的連續(xù)性和簇大小等有關(guān)系),這個結(jié)果恰恰跟天緣預(yù)料的相反,說明MYSQL對更大文件讀取可能又附加了某些操作(兩次時間增長了近30%),如果只是單純的賦值轉(zhuǎn)換應(yīng)該是差異偏小才對。

3、寫文件和INSERT幾乎不用測試就可以推測出,數(shù)據(jù)庫效率只會更差。

4、很小的配置文件如果不需要使用到數(shù)據(jù)庫特性,更加適合放到獨立文件里存取,無需單獨創(chuàng)建數(shù)據(jù)表或記錄,很大的文件比如圖片、音樂等采用文件存儲更為方便,只把路徑或縮略圖等索引信息放到數(shù)據(jù)庫里更合理一些。

5、PHP上如果只是讀文件,file_get_contents比fopen、fclose更有效率,不包括判斷存在這個函數(shù)時間會少3秒左右。

6、fetch_row和fetch_object應(yīng)該是從fetch_array轉(zhuǎn)換而來的,我沒看過PHP的源碼,單從執(zhí)行上就可以說明fetch_array效率更高,這跟網(wǎng)上的說法似乎相反。

php如何讀取CSV大文件并且將其導(dǎo)入數(shù)據(jù)庫示例

思路:

讀取csv文件,每讀取一行數(shù)據(jù),就插入數(shù)據(jù)庫

示例

文件夾結(jié)構(gòu)

/

file.csv????//csv大文件,這里只模擬三行數(shù)據(jù),不考慮運行效率(PS:csv文件格式很簡單,文件一般較小,解析很快,運行效率的瓶頸主要在寫入數(shù)據(jù)庫操作)

index.php????//php文件

file.csv

singi,20

lily,19

daming,23

index.php

/**

*?讀取csv文件,每讀取一行數(shù)據(jù),就插入數(shù)據(jù)庫

*/

//獲取數(shù)據(jù)庫實例

$dsn?=?'mysql:dbname=test;host=127.0.0.1';

$user?=?'root';

$password?=?'';

try?{

$db?=?new?PDO($dsn,?$user,?$password);

}?catch?(PDOException?$e)?{

echo?'Connection?failed:?'?.?$e-getMessage();

}

//讀取file.csv文件

if?(($handle?=?fopen("file.csv",?"r"))?!==?FALSE)?{

while?(($row?=?fgetcsv($handle,?1000,?","))?!==?FALSE)?{

//寫入數(shù)據(jù)庫

$sth?=?$db-prepare('insert?into?test?set?name=:name,age=:age');

$sth-bindParam(':name',$row[0],PDO::PARAM_STR,255);

$sth-bindParam(':age',$row[1],PDO::PARAM_INT);

$sth-execute();

}

fclose($handle);

}

數(shù)據(jù)表

CREATE?TABLE?`test`?(

`id`?INT(10)?UNSIGNED?NOT?NULL?AUTO_INCREMENT,

`name`?VARCHAR(255)?NULL?DEFAULT?''?COLLATE?'utf8mb4_bin',

`age`?INT(10)?NULL?DEFAULT?'0',

PRIMARY?KEY?(`id`)

)

COLLATE='utf8mb4_bin'

ENGINE=InnoDB;

運行結(jié)束后,數(shù)據(jù)庫中會插入csv中的三行數(shù)據(jù)


網(wǎng)頁名稱:php讀文件讀數(shù)據(jù)庫,php讀取數(shù)據(jù)庫內(nèi)容并輸出
轉(zhuǎn)載來源:http://weahome.cn/article/dscgdeo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部