copy 2 table 2 db differente

Messagepar mimi6060 il y a moins d’une minute
bonjour j'aimerais faire une copie de la source odbc vers une base de donnée mysql .

j'ai 2 sources :
conn= new PDO('odbc:lotusreportsClose', '', ''); (table nomer frmHistoryLog)
$connecmysql = new PDO('mysql:host='.$host .';dbname='.$dbname, $user, $password );(table nomer history2)
les champs a copier sont les suivant :
$fields = "txtStateFrom,txtStateTo,txtDate,txtActionShort,txtParent";
j'ai essayer
$sql =" INSERT INTO". $connecmysql.".history2 ".$fields." SELECT ".$fields ." FROM ".$conn.".frmHistoryLog";
$connecmysql->query($sql) ;
mais cela ne fonctionne pas comment je pourais faire pour que ca soit rapide car j'ai plus de 1m de champs a copier et c'est repetitif tout les semaine

merci d'avance de m'aider :)

bonne journée

4 réponses


Avec une boucle?

le mieu serais le plus rapide possible car j'ai actuelement une boucle et il me faut 8h pour copier tout les champs 1m donc faut que je trouve autre chose :s

Bonjour,
n'est-il pas possible de :

  • faire la première connexion en ODBC et placer les données dans un tableau temporaire,
  • ensuite se déconnecter de la base ODBC,
  • se connecter sur MySQL et insérer les données contenues dans le tableau ?
    Sinon sur la doc PHP ( http://php.net/manual/fr/function.mysql-connect.php) il est noté que pour ouvrir deux connexions simultanées il est nécessaire d'ajouter un 4ème paramètre => "new_link" :
    "Si un deuxième appel est fait à mysql_connect() avec les mêmes arguments, aucune nouvelle connexion ne sera établie, mais plutôt, l'identifiant de la connexion de la connexion déjà ouverte sera retourné. Le paramètre new_link modifie ce comportement et permet à mysql_connect() de toujours ouvrir une nouvelle connexion, même si mysql_connect() a été appelée avant avec les mêmes paramètres. En safe mode SQL, ce paramètre est ignoré."
    Bon courage.

le souci c'est que c'est pas 2 db mysql c'est une conexion odbc que je veut copier dans mysql donc obliher d'utiliser pdo :s