IT教程 | 加入收藏 | 简体 | 繁体
Php教程讲解:Php教程讲解Php函数讲解ThinkPHP
当前位置: 首页 > Php教程 > Php教程讲解

PHP5.3及以上版本把MSSQL数据导入到MYSQL的方法

2015-05-18来源:[www.121ask.com]热度:0℃ 【字体:

PHP5.3及以上版本把MSSQL数据导入到MYSQL的方法,需要3步:第1,让PHP 5.3支持MSSQL连接,第2:下载对应版本驱动安装检测,第3:连通,到数据到数据库。

第1步:让PHP 5.3支持MSSQL连接
 
最近在Windows Server 2008配置了PHP环境,想要连接SQL Server 2008,但是悲催的发现,从5.3开始,PHP自带的dll不再支持2000以后的MS SQL Server了。
 
没办法,只能求助于百度了。看到网上的攻略,按照以下的步骤配置,可以成功连接SQL Server。
 
一、首先需要下载、安装最新版的PHP Driver。我下载的时候,有两个版本,分别是SQLSRV20、SQLSRV30对应PHP 5.2和PHP 5.3以上的版本。从微软官方下载的是两个exe文件,实际上是一个可以自解压的压缩包。
 
双击运行后,会提示你将文件保存到什么位置。选择对应的位置后,就能够看到众多的dll文件了。
 
 
二、之后根据自己的需要,选择对应的dll,拷贝到php安装路径的ext目录下。完成后,记得修改php.ini中的配置,然后重启Web服务器使配置生效。
 
[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_53_ts.dll
[PHP_SQLSRV]
extension=php_sqlsrv_53_ts.dll
 
其中,ts表示线程安全,nts表示非线程安全。根据你的需要选择就可以了。测试脚本发现:

sqlsrv_connect()未定义!这是什么问题?

考虑到php5.3是用vc2008编译的,从网上下载了一个vc9的运行库,安装之后依旧不行?

直接进入php的安装文件夹,运行php_cgi.exe,报错:缺少一个动态库文件 msvcp100.dll

网上有说这个文件是被病毒破坏云云,重新下载一个visul studio 2010的组件Microsoft+Visual+C+++2010.exe,之后查看了一下phpinfo(),激动啊,终于可以了,如下图sqlsrv已经出来了!

sqlsrv

第2步:让PHP 5.3连接MSSQL

再运行一个连接脚本试试,报错!


<?php
$serverName = "(127.0.0.1)";
$connectionInfo = array( "UID"=>"root",
"PWD"=>"root2010",
"Database"=>"master");
 
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn )
{
echo "Connection established.n";
}
else
{
echo "Connection could not be established.n";
die( print_r( sqlsrv_errors(), true));
}
?>


Connection could not be established. Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -49 [code] => -49 [2] => This extension requires the Microsoft SQL Server 2012 Native Client. Access the following URL to download the Microsoft SQL Server 2012 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712 [message] => This extension requires the Microsoft SQL Server 2012 Native Client. Access the following URL to download the Microsoft SQL Server 2012 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712 ) [1] => Array ( [0] => IM002 [SQLSTATE] => IM002 [1] => 0 [code] => 0 [2] => [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 [message] => [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 ) )

我勒个去!再去下载一个Microsoft SQL Server Native Client 或者配置一个ODBC数据源吧,终于搞定!

 
这个时候,如果遇到要求安装“SQL Server Native Client”的错误,这说明本地没有安装客户端。这种情况,可以通过在本地安装SQL Server的时候选择安装Client,或者单独下载安装Client解决。

第3步:让PHP 5.3连接MSSQL导入 mysql  (实例代码)

//php5.3 以及以上版本使用:(需要与PHP版本对应的 mssql 驱动)
$serverName = "127.0.0.1";
$connectionInfo = array("UID"=>"sa", "PWD"=>"jing","Database"=>"whgndb");  //mssql数据库的连接
$conn = sqlsrv_connect($serverName, $connectionInfo);
if( $conn === false )
{
     echo "Could not connect.\n";
     die( print_r(sqlsrv_errors(), true) );
}
$sql = "select title,contents,intodate from news  where Fid=49 order by id asc"; //sql语句

$data=sqlsrv_query($conn,$sql);
if( $data === false )
{
     echo "Error in statement preparation/execution.\n";
     die( print_r( sqlsrv_errors(), true));
}
$i=1;
while($Arr = sqlsrv_fetch_array($data))
{
$title=$Arr['title'];
$title=iconv("gb2312","utf-8",$title);
$contents=$Arr['contents'];
$contents=iconv("gb2312","utf-8",$contents);
$intodate=$Arr['intodate'];
$intodate=$intodate->format('Y-m-d H:i:s');
$intodate=strtotime($intodate); 

$conn2=mysql_connect("127.0.0.1","root","jing");//连接数据库的帐号和端口号
mysql_query("SET NAMES 'utf-8'",$conn2);
mysql_select_db("gnjtdb",$conn2);// 加载数据库
$sql="insert into gnjt_archives(`siteid`,`typeid`,`channel`,`title`,`pubdate`,`status`) values(1,14,1,'$title','$intodate',1)";
$result=mysql_query($sql,$conn2);
$aid=mysql_insert_id();
$sql2="insert into gnjt_addnews(`aid`,`txt`,`img`) values($aid,'".addslashes($contents)."','')";
$result2=mysql_query($sql2,$conn2);
if($result2==1){
 echo "第".$i."条: SUCCESS!<br/>";
}
$i++;
}
// 关闭连接
mysql_close($conn2); 
sqlsrv_free_stmt( $data);
sqlsrv_close( $conn);

以上IT文章《PHP5.3及以上版本把MSSQL数据导入到MYSQL的方法》由名客技术网[www.121ask.com]提供阅读!
推广信息
推广信息
名客技术网是一个免费为广大IT技术人员提供IT教程,绿色软件,asp/php/jsp/java/net等实例视频教程,CMS教程,破解软件下载以及学习相关源码、知识的IT网站。
名客技术网如果无意之中侵犯了您的版权,请来电告知,本站将在3个工作日内删除 QQ:175352796
Copyright 2011-2017 Powered by 121ASK.COM, All Rights Reserved.
备案号:鄂ICP备11013833号-3