[原创]mysql数据的导出(绝对原创) |
///////////////////////////////////////////////////////
下面是一个函数,可放入一个预先编制好类中,然后再调用
到处文件为csv文件可以用excel打开
///////////////////////////////////////////////////////
function fileout($databasename,$tablename,$filename){
//导出某文件
//$databasename是数据库名,$tablename为数据表名,$filename为生成的文件名
///////// 调用方式为 //////////////////////////////////
//////// include "inc/up.inc";
//////// $bb=new myup;
//////// $databasename="cs";
//////// $tablename="ceshi";
//////// $filename="temp/aaa"; //没有文件的后缀名
//////// $bb->fileout($databasename,$tablename,$filename);
///////////////////////////////////////////////////////////
$filename1=$filename.".txt";
$filename2=$filename.".csv";
//include "../inc/mysql.inc";
$aa=new mysql;
$aa->link($databasename);
//获取数据表的字段信息,并存放到数组中
$query="show columns from $tablename";
$result=mysql_query($query);
$i=0;
while($row = mysql_fetch_row($result)) {
$i++;
$colname[$i]=$row[0]; //0显示字段名,1显示字段长度,2显示是否允许为空
}
//向导出文件中写入表头
$fp=fopen($filename1,"a");
$str="";
for($j=1;$j<=$i;$j++){
$col=$colname[$j];
$str.=$col.",";
}//for
$str.="\n";
fputs($fp,$str);
//从数组中读出数据并写入文件
$query="select * from $tablename";
$bb=$aa->excu($query);
while ($cc=mysql_fetch_array($bb,MYSQL_ASSOC)){
$str="";
for($j=1;$j<=$i;$j++){
$col=$colname[$j];
$str.=$cc[$col].",";
}//for
$str.="\n";
fputs($fp,$str);
} //while
//把文件重新命名成.csv文件
fclose($fp); //关闭打开的文件
rename($filename1,$filename2); //重新命名成.csv文件
//返回最终生成的文件的名字,以备下载
return $filename2;
} |
|
|