网站首页 > 文章中心 > 其它

csv文件做php数据库_php csv文件导入数据库

作者:小编 更新时间:2023-09-03 07:47:09 浏览量:387人看过

PHP如何对CSV大文件进行读取并导入数据库

fgetcsv 可以读取fopen打开的文件,并读取一行,

这样可以防止文件太大而内存溢出

然后每读取一定行数,入库一次,

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

思路:

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

示例

文件夹结构

/

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

index.php?//php文件

file.csv

index.php

/**

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

*/

//获取数据库实例

$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(':age',$row[1],PDO::PARAM_INT);

$sth-execute();

fclose($handle);

数据表

CREATE?TABLE?+test+?(

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

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

PRIMARY?KEY?(+id+)

)

ENGINE=InnoDB;

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

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];

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

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

$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!!!";

ob_end_clean();

echo $header_str;

echo $file_str;

php

$data=file("data.csv");

$j=count($data);

$val="'".str_replace(",","','",trim($data[$i]))."'";

$sql="insert?into?tab?values(".$val.")";

mysql_query($sql,$mylink);

//最简单的形式]

//我不了解csv?现在给你改下

$fp=fopen("a.csv","r");

while(!?feof($fp)){

$data=fgetcsv($fp);

if(!is_array($data))

$sql=$p="";

foreach($data?as?$val){

$sql.=$p."'".$val."'";

$p=",";

$sql="insert?into?tab?values(".$sql.")";

echo?$sql;

//mysql_query($sql,$mylink);

fclose($fp);

以上就是土嘎嘎小编为大家整理的csv文件做php数据库相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章