mysql通过php与不同服务器上的mssql通信

时间:2013-06-21 09:05:01

标签: php mysql sql-server pdo freetds

我在Linux服务器上安装了mysql,我在其中安装了CentOS。我想从另一个拥有mssql数据库的Windows服务器获取数据。

我需要创建一个php脚本,可以从mssql服务器获取值并将其插入到mysql服务器中。

我已尝试安装FreeTDS也是PDO但仍然无法连接(不确定我是否已正确安装)。我得到的错误消息是无法连接到服务器和找不到的驱动程序。

如何检查我是否正确安装了freetds和PDO驱动程序。

我想要做的基本图表:

服务器A(孟买){Linux Cent OS,FreeTDS和PDO已安装} --------->服务器B(德里){Windows,MSSql}

我想从服务器B获取数据到服务器A.

locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
62Error 20009 (severity 9):
        Unable to connect: Adaptive Server is unavailable or does not exist
        OS error 110, "Connection timed out"
There was a problem connecting to the server

root@server [~]# tsql -C
Compile-time settings (established with the "configure" script)
                            Version: freetds v0.91
             freetds.conf directory: /usr/local/etc
     MS db-lib source compatibility: no
        Sybase binary compatibility: no
                      Thread safety: yes
                      iconv library: yes
                        TDS version: 5.0
                              iODBC: no
                           unixodbc: yes
              SSPI "trusted" logins: no
                           Kerberos: no

如何更新TDS版本表格5到7

请指导。

3 个答案:

答案 0 :(得分:0)

那么,您可以使用mssql select querys,在php中使用mssql查询的结果设置变量,然后执行mysql insert查询将其插入到数据库中

$link = mssql_connect($server, 'sa', 'phpfi');
mssql_select_db('php', $link)
$query = mssql_query('SELECT [id] FROM [php].[dbo].[userlist]');
   while ($row = mssql_fetch_assoc($query)) {
        $row['id']
$con=mysqli_connect("127.0.0.1","root","pass","db");
mysqli_query($con,"INSERT INTO tablname VALUES('$id')");
    }

试一试。 当然,您必须根据自己的需要进行自定义。

答案 1 :(得分:0)

使用ADODB连接

$conn = new COM ("ADODB.Connection", NULL, CP_UTF8) or die("Cannot start ADO");
$connStr = "PROVIDER=SQLOLEDB;SERVER=myServer;UID=myUser;PWD=myPass;DATABASE=myDB";
$conn->open($connStr); //Open the connection to the database

$SQL="SELECT id, .........................";
$res=$conn->execute($SQL);
while (!$res->EOF)  //carry on looping through while there are records
{
    $id=$res->Fields('id')->value;
}

http://php.net/manual/en/class.com.php

现在转到示例#2 COM示例(2)

答案 2 :(得分:0)

Configure FreeTDS

这是配置FreeTDS的完美教程。来自basic..superb教程的所有内容。

感谢Hugo Brown。

相关问题