最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
ACCESS数据库向MySQL快速迁移小程序(一)
时间:2022-07-02 21:19:51 编辑:袖梨 来源:一聚教程网
近日,本人为了将为公司开发的一个信息管理系统从以前试运行的开发机器上(Windows NT + IIS4.0 + Access)迁移至一台真正的Linux服务器上(Apache1.3.12 + PHP 4.03 + MySQL 3.23.26),其中数据库中的几十个表的内容迁移,开始让我小费了一些周折,从网上也下载了一些MySqL的客户软件或是数据库管理软件,写得较好的软件均有数据迁移功能,但其迁移方式不外乎两种,一种是采用文件引入方式,此种方式在处理数据库中有和分隔符相同的字符时,会产生错误,尤其是在处理ACCESS中的Memo字段,很容易出错,最后导致导出后的数据不是多了就是少了。而另一种支持ODBC直接导入的功能较强,基本可无错误地导入各个表的内容,但很遗憾,这必须是建立在ACCESS中表格的字段是英文是才可以,如在ACCESS中字段是中文名,一般也出错,不能成功导入。
为此我只好花了点时间写了两个小程序,用于将ACCESS数据库的内容向MySQL迁移,经使用,效果还不错,特在此写出奉献给各位一试或评判。
先概述一下使用方法,
1,将ACCESS的数据库建立一个"system DSN";
2,根据ACCESS数据库中各表的名称,在MySQL中建立相应的各个空表;
3,运行fdlist.php;
4,运行import.php;
5,每运行一次3,4步可迁移一个表,然后修改fdlist.php中的ACCESS源表名和MySQL中的目标表名,再运行3,4步,直至迁移所有的表,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以下为 fdlist.php源程序
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$dbconnection = @mysql_connect("yourmysqlserver", "mysqlaccount", "mysqlpassword")
or die ("can not connect to database server");
@mysql_select_db("yourdatabase")
or die("
No Database,
") ;$odbc_table = "youroriginaltable" ; // The original table name in your ODBC database
$mysql_table = "yournewtable" ; // The new table name in your Mysql Database.
?>
$conn = odbc_connect("task", "", "");
$odbc_query = "select * from " . $odbc_table . " where 1=2";
$recordsid = odbc_exec($conn, $odbc_query);
$idcounts = odbc_num_fields( $recordsid ) ;
$fdlist1 = "" ;
for ( $i = 1 ; $i <= $idcounts ; $i ++)
$fdlist1 .= odbc_field_name($recordsid,$i)."," ;
echo "
$fdlist1 = substr($fdlist1,0,strlen($fdlist1)-1) ;
$fdlist2 = "" ;
$sqlquery = "select * from " . $mysql_table . " where 1=2 " ;
$records2 = mysql_query ($sqlquery) ;
$idcount2 = mysql_num_fields ( $records2 ) ;
for ( $i = 0 ; $i < $idcount2 ; $i++)
$fdlist2 .= mysql_field_name($records2,$i )."," ;
echo "
$fdlist2 = substr($fdlist2,0,strlen($fdlist2)-1) ;
$fp = fopen ("fdlist.txt","w") ;
fwrite ($fp,$ctable) ;
fwrite ($fp,"n");
fwrite ($fp,$fdlist1) ;
fwrite ($fp,"n");
fwrite ($fp,$etable) ;
fwrite ($fp,"n") ;
fwrite ($fp,$fdlist2) ;
fclose($fp) ;
odbc_close($conn);
if ( $idcount2 != $idcounts ) {
echo "
".
"
echo "
ODBC_table Fields = " . $idcounts;
echo "
MySQL_table Fields = " . $idcount2;
}
?>
相关文章
- 云星穹铁道权益升级怎么玩 云崩铁权益升级活动介绍 12-03
- 以闪亮之名山中绘梦怎么玩 以闪亮之名滢然花梦套装活动介绍 12-03
- 以闪亮之名绿野梦歌礼包怎么样 以闪亮之名绿野梦歌拍照礼包介绍 12-03
- 光遇12.6有什么更新 光遇12月6日更新内容介绍 12-03
- 伍六七暗影交锋测试资格怎么获得 伍六七暗影交锋内测资格获取方法 12-03
- 无限暖暖晶莹诗集怎么样 12-03
热门栏目
-
php教程
php入门 php安全 php安装 php常用代码 php高级应用 -
asp.net教程
基础入门 .Net开发 C语言 VB.Net语言 WebService -
手机开发
安卓教程 ios7教程 Windows Phone Windows Mobile 手机常见问题 -
css教程
CSS入门 常用代码 经典案例 样式布局 高级应用 -
网页制作
设计基础 Dreamweaver Frontpage js教程 XNL/XSLT -
办公数码
word excel powerpoint 金山WPS 电脑新手 -
jsp教程
Application与Applet J2EE/EJB/服务器 J2ME开发 Java基础 Java技巧及代码