从导入导出大量数据的程序实现方呢

2021-10-29 04:36:32 兴城星座网

大家一定使用过 phpmyadmin 里面的数据库导入,导出功能,非常方便。但是在实际应用中,我发现如下几个问题:

1 数据库超过一定尺寸,比如6M 这时使用导出一般没问题,可以正确的保存到本机硬盘上面,但是导入则不行!原因是:一般的 I 里面设置临时文件/上传文件的大小限制为2M,而phpmyadmin使用了上传的方式,造成失败。

2 导出到硬盘的 .SQL 文件在导回时,经常出现由于某些单引号的问题引起失败,造成导入失败,只能用 mysql等应用程序导入了。

我的数据库已经超过10M,所以必须解决这个问题。我的思路:

导出: 用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(\\\"$t\\\",\\\"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,\\\"------- php2000 dump data program V1.0 for MySQL --------\\r\\n\\\");

}

fclose($handle);

echo \\\"ok\\\";

?

导入的程序如下:用法同上面!

?

if($table==\\\"\\\")exit();

mysql_connect(\\\"localhost\\\",\\\"name\\\",\\\"password\\\");

mysql_select_db(\\\"database\\\");

$message = file(\\\"$t\\\");

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 = \\\"insert into $table values (\\\".$value.\\\")\\\";

echo mysql_error();

mysql_query($query);

echo $k.\\\" \\\";

据悉 }

echo \\\"ok\\\";

?

使用方法和可能的问题!

1 导入时 file()函数可能会有问题(我的10M的数据没出现问题),可以改为 fopen()然后没次读一行!!

2 导入,导出都需要用 ftp 操作,也就是导出后,用 ftp 把数据转到本机,导入时先用ftp转移数据到服务器!

艾拉莫德片治类风湿效果好吗
成都内分泌性不孕医院
南昌治疗男科好方法
延展阅读
迎战中考!北京非涉疫初三同学今日返校

6月13日,北平市非涉疫八月高中生教职员长假。为迎接教职员们回老家家,各校在防疫、课程须要、无意识疏导等方面都好好了精巧坦诚的准备好,各项...

星座爱情2024.12.29
夏天穿戴T恤,别总穿戴黑白灰,这3种“流行色”才高级,衬肤又显白

到了春天,T恤可以问道是这个季节里面尤其主流的穿戴乘坐单品,音乐风格百变、蓝色多样,每个人的衣柜里面会有好几件,在日常里面不管是混和衬衫...

星座爱情2024.12.16
快改!这8个错误的磨练方式,小心越练病越多!

如今不少成年人开始通过各种方法体魄陶冶但很多时候有些社就会社区活动 不仅能够“最弱 身下”甚至还就会“伤身下”成年人有哪些有误的锻炼方法...

星座爱情2024.10.28
堪比好莱坞大片,看老黄如何运用三十六计,破2022高考数学分析的堡垒

2022年中考微积分全国卷I的填空压轴题,考卷人是铁了心要和试卷们自觉斗勇了。因为这道题要用于三本书中所的“天衣无缝”,还要运用春雷中所的无...

星座爱情2024.10.20
西部数据发布新款 SATA 蓝盘 SA510,1TB 价格约 671 元

IT之家 5 年底 22 日死讯,据 computerbase 死讯,西部数据发布了新款 WD Blue SA510 气态BIOS,包括 SATA 和 M.2 两种型号。 据另据,WD Blue SA510 SATA SSD 的目标Gmail...

星座爱情2024.10.11
40个高实用性面试问题,来自这个星球最敏锐的一群科技高管

40个高价值报名补救办法,来自这个将会世界最老练的一群生物科技娱乐业 本文经公众号胖福冰糖(amazingfounder)授权投载。 我一直指出,必需要指借助...

星座爱情2024.10.06
7翌年2日,不见不散!

念过物新时代,喜迎二十大 一年一度的自愿性念过物盛会 刚开启 7月末2日至6日 十一届浙江签名会 将在苏州博览馆中所心主展场 和全县152个都将、2个...

星座爱情2024.10.02
湘南学院举行就业创业典型毕业生访谈展览

为引导大教师立起应该的业余球队名曰、低收入名曰和择业名曰,希望大教师积极投身到各阶层,把参加者令人满意融入现代化国际组织新建新征程,静...

星座爱情2024.09.05
改变自己,从不更糟开始

我们这有生之年,要亲身经历的事情以致于了,不负责任的事情也以致于了。 大多数时候,我们也可能相合难平,可能会责备和揶揄。不来过太过身旁责...

星座爱情2024.08.14
福石上市公司(300071.SZ)拟于北京石景山区参与打造数字经济及元宇宙产业协同平台

福石全资(300071.SZ)公告,公司与北京市昌平区传统创新行业拓展基金有限责任公司、中关村大数据行业该联盟等就合作专营元太阳系领域内制造与行业战...

星座爱情2024.08.13