欢迎来到天天文库
浏览记录
ID:9407683
大小:55.00 KB
页数:4页
时间:2018-04-30
《从mysql导入导出大量数据的程序实现方法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、从MySQL导入导出大量数据的程序实现方法>>教育资源库 大家一定使用过phpmyadmin里面的数据库导入,导出功能,非常方便。但是在实际应用中,我发现如下几个问题: 1数据库超过一定尺寸,比如6M这时使用导出一般没问题,可以正确的保存到本机硬盘上面,但是导入则不行!原因是:一般的PHP.INI里面设置临时文件/上传文件的大小限制为2M,而phpmyadmin使用了上传的方式,造成失败。 2导出到硬盘的.SQL文件在导回时,经常出现由于某些单引号的问题引起失败,造成导入失败,只能用mysql等应用程序导入了。 我的数据库已经超过10M,所
2、以必须解决这个问题。我的思路: 导出:用phpmyadmin保存数据库/表格结构,用脚本读取数据库内容并保存到文件里面! 导入:用phpmyadmin恢复数据库/表格结构,用脚本读取文件,然后保存到库里面! 导出程序如下:调用方法为****.php?table=tablename 这个简单的程序目前一次保存一个表格!!每行为一个字段的数据!! <? if($table==\)exit(); mysql_connect(localhost,ame,passysql_select_db(database); $r
3、esult=mysql_query(select*from$table); if(mysql_num_rofields=mysql_num_fields($result); fputs($handle,$numfields.\r); for($k=0;$k<mysql_num_rosg=mysql_fetch_rofields;$i++) { $msg[$i]=str_replace(\r,php2000mysqlreturn,$msg[$i]); $msg[$i]=str_replace(\,ph
4、p2000mysqlreturn,$msg[$i]); fputs($handle,$msg[$i].\r); } fputs($handle,-------php2000dumpdataprogramV1.0forMySQL--------r); } fclose($handle); echook; ?> 导入的程序如下:用法同上面! <? if($table==\)exit(); mysql_connect(localhost,ame,passysql_select_db(
5、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,chop($message[$i])); $value.=\'.add
6、slashes($tmp).\',; } $tmp=str_replace(php2000mysqlreturn,\r,chop($message[$k+$numfields-1])); $value.=\'.$tmp.\'; $query=insertinto$tablevalues(.$value.); echomysql_error(); mysql_query($query); echo$k.\; } echook; ?> 使用方法和可能的问题! 1
7、导入时file()函数可能会有问题(我的10M的数据没出现问题),可以改为fopen()然后没次读一行!! 2导入,导出都需要用ftp操作,也就是导出后,用ftp把数据转到本机,导入时先用ftp转移数据到服务器!12下一页>>>>这篇文章来自..,。上一页12>>>>这篇文章来自..,。
此文档下载收益归作者所有