從SQL Server 2000向MYSQL5.1導入數據

從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)  www.aiwalls.com  

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) {  www.aiwalls.com  

    $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

發佈留言