|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果你需要额外的功能的话,MySQL的普及性实际上可以让你发现总有一个厂商会提供准确的解决方案,而这个方案会满足你的需要和需求。 人人必定利用过 phpmyadmin 外面的数据库导入,导出功效,十分便利。然而在实践使用中,我发明以下几个成绩:
1、数据库超越必定尺寸,好比6M 这时候利用导出普通没成绩,可以准确的保留到本机硬盘下面,然而导入则不可!缘由是:普通的 PHP.INI 外面设置一时文件/上传文件的巨细限制为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("$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");
}
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
{
$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转移数据到办事器!使用它开发程序也是非常简单的。” |
|