您目前的位置 : 首页 >> 时空英雄 >> 正文

资深站长一种不错的从SQL转Mysql数【王思聪评邓超新片】

日期:2016-1-14(原创文章,禁止转载)

2008-05-26 20:37

来源:互联

編輯:遠行客【糾錯】人評論

A-A+

怎么開淘寶店 站優化方法 創業如何獲得投資

小米note頂配版評測

最新LOL活动

年初的時候一直在做一個站MSSQL2000-MySQL5的遷移工作,因為采用了不同的程序系統,所以主要問題在數據的遷移。由于2個系統數據庫結構差異非常大,不方便采取SQLSERVER里導入MYSQL的ODBC數據源的功能(也不推薦這么做,字段類型等不同點會搞死人的~),因此就在WINDOWS下自己寫PHP腳本從SQLSERVER里讀數據,然后按照新系統的需要處理之后插入MYSQL里面,靈活也比較方便。實際過程主要有下面幾個問題:

1、數據庫的連接,主要是連接SQLSERVER。主要有3種方法:

1.1利用PHP中的mssql_系列函数,这个与使用mysql_系列函数类似,不过要打开i中相关扩展(extension=php_l)。

1.2利用ODBC连接,由于抽象了具体数据库,所以没有办法利用数据表字段名=数组键名的特性,在针对具体应用时不是很方便,代码形式:

$conn=odbc_connect(datasourceusernamepassword);$sql=select*fromnews;$cur=odbc_exec($conn$sql);while(odbc_fetch_row($cur)){$field1=odbc_result($cur1);$field2=odbc_result($cur2);//dosomething}

1.3使用PDO-PHP5中加入数据对象抽象层,作为官方推出的数据访问接口,优点有很多,比如支持参数绑定以防止SQL注入;对于不同数据库加载不同驱动即可,程序代码是一致的,便于移植等等,相信应该是大势所趋。不过由于用了PHP5全新的面向对象特性,需要PHP5的支持,5.1可以直接使用,5需要装PECL,另外还要修改i,增加:extension=php_pdo_l和extension=php_pdo_l,实际代码如下:

try{$DBH=newPDO(mssql:dbname=XXX;host=localhost rootpassword);//ConnecttoDB}catch(PDOException$e){printError!:.$e-getMessage();//ErrorMessagedie();}$stmt=$DBH-prepare(SELECT*FROMnews);//StmtHandle$stmtif($stmt-execute()){while($row=$stmt-fetch()){//dosomething}}$stmt2=$mssql-prepare(INSERTINTOnews (titleauthor)VALUES(:title:author));$stmt2-bindParam(':title'$title);$stmt2-bindParam(':author'$author);$stmt2-execute();$DBH=null;//CloseConnection这里要提醒下的是MSSQL里面是没有MYSQL中LIMIT这个语法的。

1

2

下一页

查看全文

友情链接:

七慌八乱网 | 六合神童网 | 水中花镜中月 | 贵宾犬怎么训练 | 安徽省自学考试网 | 川大计算机学院 | 青岛海滩古堡酒店