资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

php取csv最新数据 php读取数据表内容

phpmysql导出千万级csv最快方法

1、首先创建要插入100万数据的表格,随机产生数字。

10年积累的成都网站设计、成都网站制作、外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有临漳免费网站建设让你可以放心的选择与我们合作。

2、其次创建存储过程,并向表中插入数据,调用存储过程进行插入数据,插入300万条数据,且分几次插入。

3、最后导出数据到csv,使用函数selectxxxintooutfile,其中outfile后面的路径可以是Windows或macOS或者Linux。

php中如何导入导出CSV格式的文件

php导入CSV文件:

$line_number = 0;

$handle = fopen("1.xls","r");

while ($data = fgetcsv ($handle, 100000, ",")) {

if($line_number == 0){

$line_number++;

continue;

}

//z这样就可以去掉表头的那一行

for ($i = 0; $i count($data); $i++) {

$ziduan = $data[$i];

}

}

2.php导出CSV文件

header( "Cache-Control: public" );

header( "Pragma: public" );

header("Content-type:application/vnd.ms-excel");

header("Content-Disposition:attachment;filename=txxx.csv");

header('Content-Type:APPLICATION/OCTET-STREAM');

ob_start();

$header_str =  iconv("utf-8",'gbk',"信息id,标题,名称,电话,QQ,Email,内容,时间\n");

$file_str="";

$mysqli= new mysqli('localhost','root','','test');

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

exit();

}

$sql='select *  from messages';

$mysqli-query("set names utf8 ;");

$result=$mysqli-query($sql);

if($result){

while ($row = mysqli_fetch_assoc($result)){

$file_str.= $row['id'].','.$row['title'].','.$row['name'].','."'{$row['telephone']}'".','.$row['qq'].','.$row['email'].','.str_ireplace(',',',',$row['content']).','.$row['retime']."\n";

}

}else{

echo "nonono!!!";

}

$file_str=  iconv("utf-8",'gbk',$file_str);

ob_end_clean();

echo $header_str;

echo $file_str;

?

php如何读取CSV大文件并且将其导入数据库示例

思路:

读取csv文件,每读取一行数据,就插入数据库

示例

文件夹结构

/

file.csv    //csv大文件,这里只模拟三行数据,不考虑运行效率(PS:csv文件格式很简单,文件一般较小,解析很快,运行效率的瓶颈主要在写入数据库操作)

index.php    //php文件

file.csv

singi,20

lily,19

daming,23

index.php

/**

* 读取csv文件,每读取一行数据,就插入数据库

*/

//获取数据库实例

$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) {

//写入数据库

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

}

数据表

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;

运行结束后,数据库中会插入csv中的三行数据

如何使用PHP导出csv和excel文件

(一)phpexcel文件导出:

步骤1,引入文件require APPPATH.'/libraries/PHPExcel.PHP';

步骤2, 实例化PHPEXCEL对象 $objPHPExcel=new PHPExcel();

步骤3, 设置表头 $column = array('A','B','C'); $line = array('词语','频次','词性');

//填充表头信息

for($i = 0;$i count($tableheader_all);$i++) {

$objPHPExcel-getActiveSheet()-setCellValue("$letter[$i]1","$tableheader[$i]");

//上一行中"$letter[$i]1"表示第“1”行第“$i”列

}

步骤4, 填充数据

for ($i = 2;$i = count($data) + 1;$i++) {//因为内容是从第二行开始的,所以i=2表示从第二行开始填充数据

$j = 0;

foreach ($tmp as $key=$val ){

$objPHPExcel-getActiveSheet()-setCellValue("$letter[$j]$i",$data[$i-2][$val]); //数据是从第一条开始但是i的初值是2所以想从第一条开始应该是$data[$i-2]开始

$j++;

}

}

步骤5,写进excel中并输出

$write = new PHPExcel_Writer_Excel5($objPHPExcel);

header("Pragma: public");

header("Expires: 0");

header("Cache-Control:must-revalidate, post-check=0, pre-check=0");

header("Content-Type:application/force-download");

header("Content-Type:application/vnd.ms-execl");

header("Content-Type:application/octet-stream");

header("Content-Type:application/download")

header('Content-Disposition:attachment;filename="数据导出_词云图.xls"');

header("Content-Transfer-Encoding:binary");

$write-save('php://output');

(一)CSV文件导出:

csv文件导出最令人头疼的问题就是编码问题,现在分享一下我的经验

首先看服务器是Linux的还是windows的 如果是windows的服务器那么编码问题只能借助于mb_convert_encoding()或者是iconv两个函数相互转换中文编码

如果服务器是linux的 那么很简单 utf-8: setlocale(LC_ALL, ‘en_US.UTF-8′); 简体中文:setlocale(LC_ALL, ‘zh_CN');

下面来说csv导出步骤:

$result = mysql_query("select * from student order by id asc");

$str = "姓名,性别,年龄\n";

$str = iconv('utf-8','gb2312',$str);

while($row=mysql_fetch_array($result)){

$name = iconv('utf-8','gb2312',$row['name']); //中文转码

$sex = iconv('utf-8','gb2312',$row['sex']);

$str .= $name.",".$sex.",".$row['age']."\n"; //用引文逗号分开

}

$filename = date('Ymd').'.csv'; //设置文件名

export_csv($filename,$str); //导出

要将数据导出到本地即下载,需要修改header信息,代码如下:

function export_csv($filename,$data) {

header("Content-type:text/csv");

header("Content-Disposition:attachment;filename=".$filename);

header('Cache-Control:must-revalidate,post-check=0,pre-check=0');

header('Expires:0');

header('Pragma:public');

echo $data;

}


名称栏目:php取csv最新数据 php读取数据表内容
标题来源:http://cdkjz.cn/article/ddgoeps.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220