MySQL导大量数据的程序实现方法

发布时间:2019-12-14 06:18    浏览次数 :

[返回]

如何用php导出导入大数据库,
今天网速极慢没办法就来写写用php来写一个导出导入大数据库吧,我想很多人经常会用phpmyadmin进行数据的导入与导出,但是在很多使用虚拟主机的情况下,导出没什么问题但是导入就存在很大的问题了,我想这里我也不多说了站长都会知道了.
好了我们现在来看看php把mysql数据库里面的数据导入程序吧.

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

$tname = mysql_query("select * from 要导出的表名");
if(mysql_num_rows($tname) <= 0) exit(); //数据表为空的就直接退出了解
$handle = fopen("$table.txt","w"); 我们以读写方式打开一txt文件.
$n_s = mysql_num_fields($tname); //取得数据的段
fputs($handle,$n_s." ");写文件
for($start=0;$start
{
$msg = mysql_fetch_row($tname);
for($i=0;$i<$n_s;$i++)
{
$msg[$i] = str_replace(" ","&&jimmy&&",$msg[$i]);
$msg[$i] = str_replace(" " ,"&&jimmy&&",$msg[$i]);
fputs($handle,$msg[$i]." ");
}
fputs($handle,"------- php2000 dump data program V1.0 for MySQL -------- ");
}
fclose($handle);
print "ostart";
?>
好了现在数据导出写好了,现在我们就来看怎么把我们刚才写的导出的数据导入到数据表当中去吧,这里只要按照我们刚才的规则来就Ostart了.
$rate_info = file("$table.txt");
print $n_s = chop($rate_info[0]);
for($start=1;$start
{
$value="";
for ($i=$start;$i<($start+$n_s-1);$i++)
{
$tmp = str_replace("&&jimmy&&"," ",chop($rate_info[$i]));
$value .= "'".addslashes($tmp)."',";
}
$tmp = str_replace("&&jimmy&&"," ",chop($rate_info[$start+$n_s-1]));
$value .= "'".$tmp."'";
$query = "insert into $table values (".$value.")";
print mysql_error();
mysql_query($query);
print $start." ";
}
print "ostart";
?>
好了大数据的导入与导出就不存在问题了,希望给各位没有自己的主机的朋友一些帮助吧.

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

, 今天网速极慢没办法就来写写用php来写一个导出导入大数据库吧,我想很多人经常会用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("$table.txt","w");

$numfields = mysql_num_fields($result);

fputs($handle,$numfields."/r/n");

for($k=0;$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");

}

下一篇:没有了