0

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

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

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

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

我正在尝试做的基本图:

服务器 A (Mumbai) {Linux Cent OS, FreeTDS and PDO installed} ---------> 服务器 B (Delhi) {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

请指导。

4

3 回答 3

0

配置 FreeTDS

这是配置 FreeTDS 的完美教程。从基本的每一件事......精湛的教程。

感谢雨果布朗。

于 2013-06-21T14:41:52.413 回答
0

好吧,您可以使用 mssql 选择查询,在 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')");
    }

试试这个。当然,您必须对其进行自定义以满足您的需求。

于 2013-06-21T09:09:41.110 回答
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)

于 2013-06-21T09:09:41.267 回答