將SQL Server的數據導入到MySQL
將SQL Server的數據導入到MySQL數據庫中,有兩種方式。
第一種是安裝MySQL ODBC,利用SQL server的導出功能,選擇MySQL數據源,進行數據的直接導出,這種方法很簡便,但是實際應用中卻存在很多問題,最主要的就是數據類型問題。SQL Server數據庫中的ntext、image等數據類型的數據無法直接寫入到MySQL數據庫中。不推薦使用這種方式。
第二種方式是通過PHP腳本來實現數據的導入功能,使用此方式需要編寫程序,但是靈活性大,操作十分簡單,能夠自己控制數據類型,不存在任何類型不匹配的問題。
本教程來自網站源代碼http://www.isstudy.com
使用該方式的前提是PHP和MySQL的環境已經配置好,在MySQL的數據庫中已經建立了對應要使用的數據庫和數據表,其中的數據庫和數據表也可以使用SQL語句來生成。
編寫PHP程序的思路是,首先通過一個PHP腳本文件同時連接SQL server數據庫和MySQL數據庫,其次從SQL server數據庫中讀取指定的數據表中的數據,最後把從SQL Server數據庫中讀取的數據添加到MySQL數據庫中指定的數據表。如果在轉換過程存在數據類型的問題時,可以通過函數對其類型進行轉換。具體實例如下。
數據由SQL server數據庫中導入到MySQL數據庫中,把SQL server數據庫的book表中的數據導入到MySQL數據庫的book表中。SQL server數據庫的名稱是table_book,而MySQL數據庫的名稱是shop_book。SQL Server數據庫中數據表的結構如表1所示。
表1 book表的結構
執行文件example01.PHP的代碼如下:
<?PHP
//連接SQL Server數據庫
$conn=mssql_connect("localhost","sa",""); //服務器名稱,用戶名,密碼
mssql_select_db("table_book",$conn); //連接table_book數據庫
//連接MySQL數據庫
$id=MySQL_connect("localhost","root","root"); //本地服務器localhost,用戶名root,密碼root
MySQL_select_db("shop_book",$id); //連接shop_book數據庫
//從SQL Server數據庫中查詢數據表book的所有內容
$ms_query=mssql_query("select * from book",$conn);
//循環輸出book表中的內容
while($msrow=mssql_fetch_array($ms_query)){
$name=$msrow[name]; //為輸出的內容設置一個變量
$author=$msrow[author];
$bookconcern=$msrow[bookconcern];
//把從SQL Server數據庫中輸出的數據添加到MySQL數據庫中
$query=MySQL_query("insert into book(name,author,bookconcern)
values('$name','$author','$bookconcern')",$id); }
?>
通過執行該文件就可以將SQL Server數據庫中的數據導入到MySQL數據庫中。這裡使用的數據類型都是可以匹配的類型,其中MySQL數據庫中的表是通過圖形化的管理工具創建的,還可以使用SQL語言在執行文件中直接創建MySQL的數據庫和數據表。