从MySQL导入导出大量数据的程序实现方法
2008-05-01 02:11
916 查看
.Gwc245{display:none;}
导出:用phpmyadmin保存数据库/表格结构,用脚本读取数据库内容并保存到文件里面!
导入:用phpmyadmin恢复数据库/表格结构,用脚本读取文件,然后保存到库里面!
导出程序如下:调用方法为****.php?table=tablename
这个简单的程序目前一次保存一个表格!!每行为一个字段的数据!!
<?
if($table==/"/")exit();
MySQL_connect(/"localhost/",/"name/",/"password/");
MySQL_select_db(/"database/");
$result=MySQL_query(/"select*from$table/");
if(MySQL_num_rows($result)<=0)exit();
echo/"开始转换数据到文本...
/";
$handle=fopen(/"$table.txt/",/"w/");
$numfields=MySQL_num_fields($result);
fputs($handle,$numfields./"/r/n/");
for($k=0;$k<MySQL_num_rows($result);$k++)
{
$msg=MySQL_fetch_row($result);
for($i=0;$i<$numfields;$i++)
{
$msg[$i]=str_replace(/"/r/n/",/"&&php2000MySQLreturn&&/",$msg[$i]);
$msg[$i]=str_replace(/"/n/",/"&&php2000MySQLreturn&&/",$msg[$i]);
fputs($handle,$msg[$i]./"/r/n/");
}
fputs($handle,/"-------php2000dumpdataprogramV1.0forMySQL--------/r/n/");
}
fclose($handle);
echo/"ok/";
?>
<?
if($table==/"/")exit();
MySQL_connect(/"localhost/",/"name/",/"password/");
MySQL_select_db(/"database/");
$message=file(/"$table.txt/");
echo$numfields=chop($message[0]);
for($k=1;$k<count($message);$k+=($numfields+1))
{
$value=/"/";
for($i=$k;$i<($k+$numfields-1);$i++)
{
$tmp=str_replace(/"&&php2000MySQLreturn&&/",/"/r/n/",chop($message[$i]));
$value.=/"/'/".addslashes($tmp)./"/',/";
}
$tmp=str_replace(/"&&php2000MySQLreturn&&/",/"/r/n/",chop($message[$k+$numfields-1]));
$value.=/"/'/".$tmp./"/'/";
$query=/"insertinto$tablevalues(/".$value./")/";
echoMySQL_error();
MySQL_query($query);
echo$k./"/";
}
echo/"ok/";
?>
使用方法和可能的问题!
1导入时file()函数可能会有问题(我的10M的数据没出现问题),可以改为fopen()然后没次读一行!!
2导入,导出都需要用ftp操作,也就是导出后,用ftp把数据转到本机,导入时先用ftp转移数据到服务器!
导出:用phpmyadmin保存数据库/表格结构,用脚本读取数据库内容并保存到文件里面!
导入:用phpmyadmin恢复数据库/表格结构,用脚本读取文件,然后保存到库里面!
导出程序如下:调用方法为****.php?table=tablename
这个简单的程序目前一次保存一个表格!!每行为一个字段的数据!!
<?
if($table==/"/")exit();
MySQL_connect(/"localhost/",/"name/",/"password/");
MySQL_select_db(/"database/");
$result=MySQL_query(/"select*from$table/");
if(MySQL_num_rows($result)<=0)exit();
echo/"开始转换数据到文本...
/";
$handle=fopen(/"$table.txt/",/"w/");
$numfields=MySQL_num_fields($result);
fputs($handle,$numfields./"/r/n/");
for($k=0;$k<MySQL_num_rows($result);$k++)
{
$msg=MySQL_fetch_row($result);
for($i=0;$i<$numfields;$i++)
{
$msg[$i]=str_replace(/"/r/n/",/"&&php2000MySQLreturn&&/",$msg[$i]);
$msg[$i]=str_replace(/"/n/",/"&&php2000MySQLreturn&&/",$msg[$i]);
fputs($handle,$msg[$i]./"/r/n/");
}
fputs($handle,/"-------php2000dumpdataprogramV1.0forMySQL--------/r/n/");
}
fclose($handle);
echo/"ok/";
?>
<?
if($table==/"/")exit();
MySQL_connect(/"localhost/",/"name/",/"password/");
MySQL_select_db(/"database/");
$message=file(/"$table.txt/");
echo$numfields=chop($message[0]);
for($k=1;$k<count($message);$k+=($numfields+1))
{
$value=/"/";
for($i=$k;$i<($k+$numfields-1);$i++)
{
$tmp=str_replace(/"&&php2000MySQLreturn&&/",/"/r/n/",chop($message[$i]));
$value.=/"/'/".addslashes($tmp)./"/',/";
}
$tmp=str_replace(/"&&php2000MySQLreturn&&/",/"/r/n/",chop($message[$k+$numfields-1]));
$value.=/"/'/".$tmp./"/'/";
$query=/"insertinto$tablevalues(/".$value./")/";
echoMySQL_error();
MySQL_query($query);
echo$k./"/";
}
echo/"ok/";
?>
使用方法和可能的问题!
1导入时file()函数可能会有问题(我的10M的数据没出现问题),可以改为fopen()然后没次读一行!!
2导入,导出都需要用ftp操作,也就是导出后,用ftp把数据转到本机,导入时先用ftp转移数据到服务器!
相关文章推荐
- 从 MySQL 导入导出大量数据的程序实现方法
- MySQL导入导出大量数据的程序实现方法
- MySQL导入导出大量数据的程序实现方法
- 从MySQL导入导出大量数据的程序实现方法
- 导入导出大量数据程序实现方法
- Mysql导入导出大量数据的方法、备份恢复办法
- Mysql导入导出大量数据的方法、备份恢复办法
- 从 MySQL 导入导出大量数据的程序
- MySQL 文本文件的导入导出数据的方法
- 16 MySQL数据导入导出方法与工具介绍之一
- mysql学习小札(2)-- 数据备份、还原、导入导出方法的简单总结
- 多种方法导入导出mysql数据
- mysql mysqldump只导出表结构或只导出数据的实现方法
- MySQL数据导入导出方法与工具介绍(3-Exporting Data)
- mysql 导入导出数据库、数据表的方法
- JAVA接口将从MySql查出的大量数据导入到Elasticsearch中实现类
- 使用POI实现在java程序中导入导出Excel文件数据
- mysql导入导出数据中文乱码解决方法小结
- mysql 导入导出数据方法
- 导入Excel和导出Excel的简单方法与程序处理方法,使用Excel程序读写Excel ,实现Excel的多个 Sheets读写并导出