當前位置:首頁 » 編程語言 » php輸出csv

php輸出csv

發布時間: 2025-03-01 17:06:03

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=newPDO($dsn,$user,$password);
}catch(PDOException$e){
echo'Connectionfailed:'.$e->getMessage();
}

//讀取file.csv文件
if(($handle=fopen("file.csv","r"))!==FALSE){
while(($row=fgetcsv($handle,1000,","))!==FALSE){
//寫入資料庫
$sth=$db->prepare('insertintotestsetname=:name,age=:age');
$sth->bindParam(':name',$row[0],PDO::PARAM_STR,255);
$sth->bindParam(':age',$row[1],PDO::PARAM_INT);
$sth->execute();
}
fclose($handle);
}

數據表

CREATETABLE`test`(
`id`INT(10)UNSIGNEDNOTNULLAUTO_INCREMENT,
`name`VARCHAR(255)NULLDEFAULT''COLLATE'utf8mb4_bin',
`age`INT(10)NULLDEFAULT'0',
PRIMARYKEY(`id`)
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB;

運行結束後,資料庫中會插入csv中的三行數據

❷ 求源碼!PHP導出數據到csv文件

<?php
$DB_Server = "localhost";
$DB_Username = "root";
$DB_Password = "";
$DB_DBName = "DBName";
$DB_TBLName = "DB_TBLName";

$savename = date("YmjHis");
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die("Couldn't connect.");
mysql_query("Set Names 'gbk'");
$file_type = "vnd.ms-excel";
$file_ending = "xls";
header("Content-Type: application/$file_type;charset=gbk");
header("Content-Disposition: attachment; filename=".$savename.".$file_ending");
//header("Pragma: no-cache");

$now_date = date("Y-m-j H:i:s");
//$title = "資料庫名:$DB_DBName,數據表:$DB_TBLName,備份日期:$now_date";

$sql = "Select * from $DB_TBLName";
$ALT_Db = @mysql_select_db($DB_DBName, $Connect) or die("Couldn't select database");
$result = @mysql_query($sql,$Connect) or die(mysql_error());

//echo("$title\n");
$sep = "\t";
for ($i = 0; $i < mysql_num_fields($result); $i++) {
echo mysql_field_name($result,$i) . "\t";
}
print("\n");
$i = 0;
while($row = mysql_fetch_row($result)) {
$schema_insert = "";
for($j=0; $j<mysql_num_fields($result);$j++) {
if(!isset($row[$j]))
$schema_insert .= "NULL".$sep;
elseif ($row[$j] != "")
$schema_insert .= "$row[$j]".$sep;
else
$schema_insert .= "".$sep;
}
$schema_insert = str_replace($sep."$", "", $schema_insert);
$schema_insert .= "\t";
print(trim($schema_insert));
print "\n";
$i++;
}
return (true);
?>

❸ php 生成csv文件並提示保存

<?php
//文件名
$filename="test.csv";

//數據(具體的根據需要做處理,如果是從資料庫查詢,原理與此類似,只需設置好寫入格式和數據即可。
$data="測試csv";

//設置header
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格式文件因為導出數據中有英文逗號導致分列錯誤怎麼處理

CSV文件的格式本身就是以英文逗號分列,然後回車分行的文本類型!所以,你的問題,如果某一列中包含英文逗號的話將這一列用引號引起來!比如:
a,"b,c",d
這樣就會是三列,而不是四列

熱點內容
php自動完成 發布:2025-03-01 20:04:20 瀏覽:624
axel源碼 發布:2025-03-01 19:52:17 瀏覽:225
小學加減混合運演算法則 發布:2025-03-01 19:25:50 瀏覽:960
我的世界好玩的自創伺服器 發布:2025-03-01 19:16:31 瀏覽:952
密碼鎖一直在閃是什麼情況 發布:2025-03-01 19:09:21 瀏覽:270
寶馬app插件怎麼到安卓桌面 發布:2025-03-01 19:09:19 瀏覽:996
二維碼信息加密 發布:2025-03-01 19:03:35 瀏覽:307
子齊游戲解說的qq群密碼是什麼 發布:2025-03-01 18:59:18 瀏覽:222
iosflutter編譯 發布:2025-03-01 18:59:05 瀏覽:426
求心演算法 發布:2025-03-01 18:57:33 瀏覽:113