2013-06-21 4 views
0

J'ai mysql sur un serveur linux que je possède ayant installé CentOS. Je veux récupérer des données d'un autre serveur Windows ayant une base de données mssql.mysql communiquer avec mssql sur un serveur différent via php

Je dois créer un script php capable d'obtenir les valeurs du serveur mssql et de l'insérer dans le serveur mysql.

J'ai essayé d'installer FreeTDS et PDO mais je n'arrive toujours pas à me connecter (je ne sais pas si je l'ai installé correctement). Les messages d'erreur que je reçois sont Impossible de se connecter au serveur et les pilotes non trouvés.

Comment puis-je vérifier si j'ai installé correctement les pilotes freetds et PDO.

Diagramme de base de ce que je suis en train de faire:

serveur A (Mumbai) {Linux Cent OS, FreeTDS et AOP installé} ---------> Serveur B (Delhi) {Fenêtres , MSSQL}

Je veux obtenir des données de serveur B au serveur 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 

[email protected] [~]# 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 

Comment puis-je mettre à jour sous forme de version TDS 5 à 7

S'il vous plaît guider.

Répondre

0

Configure FreeTDS

Ceci est un tutoriel parfait pour la configuration FreeTDS. Chaque chose du tutoriel basic..superb.

Merci à Hugo Brown.

0

Eh bien, vous pouvez utiliser MSSQL sélectionner querys, définir une variable en php avec le résultat de la requête MSSQL, puis effectuez une requête d'insertion mysql pour l'insérer dans votre base de données

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

donner à cette essayer. Bien sûr, vous devez le personnaliser pour répondre à vos besoins.

+0

Avertissement: mssql_connect() [fonction.mssql-connect]: Impossible de se connecter au serveur: 116.214.26.236 –

+0

Dites-moi si un port bloque la connexion? –

+0

Attention: mssql_select_db() s'attend à ce que le paramètre 2 soit une ressource Avertissement: mssql_fetch_assoc() attend que le paramètre 1 soit une ressource –

0

Utilisation 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

Maintenant, allez à l'exemple n ° 2 exemple COM (2)

+0

Essayé il a l'erreur Erreur fatale: Classe "COM" introuvable dans .... essayé de décommenter cette ligne "; extension = php_com_dotnet.dll" mais je ne trouve pas la ligne dans php.ini –

+0

vérifier http://stackoverflow.com/questions/10678325/class-com-not-found –

+0

http://www.clearfoundation.com/component/option,com_kunena/Itemid,232/catid,17/func,view/id , 41247/ –

Questions connexes