① 高手求教中:php寫一個數組包括5行數據,學號,姓名,性別,年齡,班級,將數組的內容寫入到stu.csv中.
<?php
/**
* 寫入數據到csv文件中
*/
$filename = "f:/file.csv";
$stu[0] = array('No','Name','Sex','Age','Class');
$stu[1] = array('01','張三', '男', '20', '二班');
$stu[2] = array('02','李四', '男', '22', '一班');
$stu[3] = array('03','王五', '男', '19', '三班');
$fp = fopen($filename, 'w');
foreach($stu as $student)
{
fputcsv($fp,$student); //每次寫入一組數據到csv文件中的一行
}
fclose($fp);
?>
<?php
/**
* 從csv文件中讀取數據
*/
$fp = fopen($filename,'r');
echo '<table border="1" align="center">';
while ($data = fgetcsv($fp))
{ //每次讀取CSV裡面的一行內容
echo '<tr height="30" align="center">';
foreach($data as $value)
{
echo '<td width="100">'.$value.'</td>';
}
echo '</tr>';
}
echo '</table>';
fclose($fp);
?>
② 關於php導入csv文件到mysql的時候!
1. 把現有表中的 email 欄位設為 "唯一" 或者 "主鍵";2. 用SQL語句導入csv文件:LOAD DATA INFILE 'file_name.csv' IGNORE #注意, 這里的IGNORE是關鍵, 不導入重復的行
INTO TABLE tbl_name
FIELDS
TERMINATED BY ',' #用逗號分割欄位
OPTIONALLY ENCLOSED BY '"' #根據csv文件的字元串是否用引號括起來設置
③ PHP如何對CSV大文件進行讀取並導入資料庫
fgetcsv 可以讀取fopen打開的文件,並讀取一行,
這樣可以防止文件太大而內存溢出
然後每讀取一定行數,入庫一次,
④ php點擊按鈕上傳csv文件,存入mysql資料庫代碼怎麼寫
<?php
$data=file("data.csv");
$j=count($data);
for($i=2;$i<$j;$i++){
$val="'".str_replace(",","','",trim($data[$i]))."'";
$sql="insertintotabvalues(".$val.")";
mysql_query($sql,$mylink);
}
?>//最簡單的形式]
//我不了解csv現在給你改下
<?php
$fp=fopen("a.csv","r");
while(!feof($fp)){
$data=fgetcsv($fp);
if(!is_array($data))
continue;
$sql=$p="";
foreach($dataas$val){
$sql.=$p."'".$val."'";
$p=",";
}
$sql="insertintotabvalues(".$sql.")";
echo$sql;
//mysql_query($sql,$mylink);
}
fclose($fp);
?>
⑤ (新手求助!!)php上傳csv文件寫入到data.txt文本文件時為什麼第一行出現空行
我也不曉得怎麼回事,能力有限啊,不過可以給你一個建議,既然都是這樣,你也懶管它得了,在while語句前面寫一個$i=0;然後在循環語句中加一句判斷就行了,只有當$i>0才進行後面的操作,然後在循環語句後面加一句$i++; 即可
⑥ php 生成 csv文件
<?php
/**
*CreatedbyPhpStorm.
*User:[email protected]
*Date:2016/12/210021
*Time:下午12:08
*/
//頭部標題
$csv_header=['名稱','性別','年齡'];
//內容
$csv_body=[
['張三','男','13'],
['李四','女','13'],
['王五','男','13'],
['趙六','未知','13']
];
/**
*開始生成
*1.首先將數組拆分成以逗號(注意需要英文)分割的字元串
*2.然後加上每行的換行符號,這里建議直接使用PHP的預定義
*常量PHP_EOL
*3.最後寫入文件
*/
//打開文件資源,不存在則創建
$fp=fopen('test.csv','a');
//處理頭部標題
$header=implode(',',$csv_header).PHP_EOL;
//處理內容
$content='';
foreach($csv_bodyas$k=>$v){
$content.=implode(',',$v).PHP_EOL;
}
//拼接
$csv=$header.$content;
//寫入並關閉資源
fwrite($fp,$csv);
fclose($fp);
⑦ 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中,不覆蓋原有數據,以新增行插入如何實現
這個跟fputcsv無關,而主要的關鍵在於你打開文件的模式,你需要使用 a 或是 a+ 模式打開文件。
'a' 寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。
'a+' 讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。
$fp = fopen('file.csv', 'a+');
foreach($stu as $data);
{
fputcsv($fp,$data); //每次寫入一組數據到csv文件中的一行
}
⑨ php怎麼讀取csv文件並插入資料庫
使用 phpmyadmin 中的導入功能,選擇csv格式
⑩ php將csv導入到mysql的問題。
phpexcel
可以實現xls,xlsx,csv文件的讀取。
當然我也有詳細代碼