Pergunta

I have mysql on a linux server which I own having CentOS installed in it. I want to fetch data from another windows server having mssql database.

I need to create a php script that can get the values from mssql server and insert it into mysql server.

I have tried installing FreeTDS also PDO but still I am unable to connect (not sure if I have installed it properly). The error messages I get are Could not Connect to the server and drivers not found.

How can I check if I have installed freetds and PDO drivers correctly.

Basic Diagram of what I am trying to do:

Server A (Mumbai) {Linux Cent OS, FreeTDS and PDO installed} ---------> Server B (Delhi) {Windows, MSSql}

I want to get data from Server B to Server 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

How can I update TDS version form 5 to 7

Please guide.

Foi útil?

Solução 3

Configure FreeTDS

This is a perfect tutorial for configuring FreeTDS. Every thing from basic..superb tutorial.

Thanks to Hugo Brown.

Outras dicas

Use ADODB Connection

$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

Now go to Example #2 COM example (2)

Well, you can use the mssql select querys, set a variable in php with the result from the mssql query, and then do a mysql insert query to insert it into your database

$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')");
    }

Give this a try. Of course you have to customize it to fit your needs.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top