从SQL Server 2000向MYSQL5.1导入数据

1、在Sql Server 2000中选中右击所要导出的数据库选择->所有任务->导出数据

2、在弹出的对话框中选择“下一步”,在DTS 导入/导出向导中选择“下一步”

3、在接下来的对话框中将目的改为“文本文件”,在文件文件名的对话框中找到所要导出的文件的名称,单击“下一步”。

4、在弹出的对话框中选择“用一条查询指定要传输的数据”,单击“下一步”。

5、在弹出的对话框中的查询语句框中输入相关查询语句。(例如select id,name,pwd from user)单击“分析”,如果弹出“SQL语句有效”则单击下一步。

6、在选择目标文件格式的对话框中的列分隔符中选择对应的分隔符(一般为逗号),文本限定符(一般为双引号{"}),如果有需要可以单击“转换格式”(我选择了,把所有字段的类型都改为varchar,这样只是为了方便在PHP中设定delimiter)

7、下一步->下一步->完成

8、如果弹出“成功地将1个表从Microsoft SQL Server复制到了Flat File。”则从SQL Server 2000导出成功了!

PHP的版本秘须在5.0以上

<?php
$mysqli = new mysqli ( 'localhost', 'root', '880116', 'Douglas' );

//这个地方必须设置为utf8而不是utf-8或者UTF-8,如果不是utf8则在数据内将会出现乱码
$mysqli->query("set names utf8");
if ($mysqli) {
    $fh = fopen ( 'user.txt', 'r' );
    $delimiter=',';
    $enclosure='"';
    while ( $line = fgetcsv ( $fh, 120000,$delimiter ,$enclosure) ) {
        $id= $line [0];
        $name= $line [1];

        //因为SQL Server 2000导出的文本文件是以GB2312所以必须转换成和MYSQL中的表一样的Character Set,当然这个地方跟据需要,如果表的Character set是GBK则这个地方的UTF-8必须为GBK

        $name=iconv('GB2312', 'UTF-8', $name);
        $pwd= $line [2];
        $query="insert into user(id,name,pwd) values('$id','$name','$pwd')";
        $result=$mysqli->query($query);
    }
    fclose($fh);
    mysqli_close();
} else {
    echo "You can't connect!";
}
?>

猜你喜欢

转载自douglaslau.iteye.com/blog/1472467