① 高手求教中: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文件的读取。
当然我也有详细代码