从MySQL快速导入导出大量数据的程序实现方法
今天由小编为大家讲解有关语言编程的文章,相信对大家一定有很大的帮助 |
C语言教程大家一定使用过 myadmin 里面的导入,导出功能,非常方便。但是在实际应用中,我发现如下几个问题:
1 数据库超过一定尺寸,比如6M 这时使用导出一般没问题,可以正确的保存到本机硬盘上面,但是导入则不行!原因是:一般的 PHP.INI 里面设置临时文件/上传文件的大小限制为2M,而phpmyadmin使用了上传的方式,造成失败。
2 导出到硬盘的 .SQL 文件在导回时,经常出现由于某些单引号的问题引起失败,造成导入失败,只能用 等应用程序导入了。 我的数据库已经超过10M,所以必须解决这个问题。我的思路:
导出: 用phpmyadmin 保存数据库/表格结构,用脚本读取数据库内容并保存到文件里面!
“我从事编程语言统计很多年了,有大量的数据来源包括代码存储库、Q&A讨论、招聘广告、社交媒体情况、教程页面访问、学习视频视图、开发者调查等等。数据发表在不同的时间,都可以被认为是精确的,
也可以被认为是有缺陷的,但是它们可以用于发现行业趋势。最后,不要期望一夜之间就变成一个编码忍者。有些人有一种天然的能力,但也是花了很多很多时间来磨练他们的技能,不断的学习新的技术和技巧。”
导入:C语言视频教程 用phpmyadmin 恢复数据库/表格结构,用脚本读取文件,然后保存到库里面!
导出程序如下:调用方法为 ****.php?table=tablename
这个简单的程序目前一次保存一个表格!!每行为一个字段的数据!!
< ?
if($table==\\\\”\\\\”)exit();
mysql_connect(\\\\”localhost\\\\”,\\\\”name\\\\”,\\\\”pass\\\\”);
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,\\\\”——- php2000 dump data program V1.0 for MySQL ——–\\\\r\\\\n\\\\”);
}
fclose($handle);
echo \\\\”ok\\\\”;
?>
c语言编程入门导入的程序如下:用法同上面!
< ?
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 = \\\\”insert into $table values (\\\\”.$value.\\\\”)\\\\”;
echo mysql_error();
mysql_query($query);
echo $k.\\\\” \\\\”;
}
echo \\\\”ok\\\\”;
?>
使用方法和可能的问题!
1 导入时 file()函数可能会有问题(我的10M的数据没出现问题),可以改为 fopen()然后没次读一行!!
2 导入,导出都需要用 ftp 操作,也就是导出后,用 ftp 把数据转到本机,导入时先用ftp转移数据到服务器!
看完小编的文章是不是很精彩,更多关于视频教程的文章尽在课课家,希望你们多多关注。 |