從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.2cto.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.2cto.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