Mysql_select 2 BDD
Résolu
malhek69
Messages postés
79
Date d'inscription
Statut
Membre
Dernière intervention
-
malhek69 Messages postés 79 Date d'inscription Statut Membre Dernière intervention -
malhek69 Messages postés 79 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai deux BDD mysql qui ne sont pas sur le même serveur, je souhaite récupérer les données d'une première BDD pour l'insérer dans le deuxième.
Voici mon code en premier:
Et voici l'erreur que j'ai :
Je force la connexion avec mon true donc je ne comprends pas où est l'erreur. Qqn a une idée par hasard?
Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie
EDIT : Ajout du LANGAGE dans les balises de code.
j'ai deux BDD mysql qui ne sont pas sur le même serveur, je souhaite récupérer les données d'une première BDD pour l'insérer dans le deuxième.
Voici mon code en premier:
<?php // Create first connection to the host named locahost1. $con1 = @mysql_connect('XX.XXX.XXX.XXX' , 'admin' , 'password'); if(!$con1) { echo "ERROR MySQL: Connect to Server locahost 1\n"; exit; } // Create a second connection to the host named locahost2. $con2 = @mysql_connect('localhost' , 'admin' , 'password', true); if(!$con2) { echo "ERROR MySQL: Connect to Server locahost 2\n"; exit; } echo $con1."\n"; echo $con2."\n"; // Connect to the selected MySQL database – using the connection $con1. @mysql_select_db(‘asteriskcdrdb′, $con1); // Connect to the selected MySQL database – using the connection $con2. @mysql_select_db(‘facturation′, $con2); // requête sql pour vider la table cdrimport $sql = "TRUNCATE TABLE facturation.importcdr"; $req = mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); echo nl2br("Truncate importcdr OK"); // requête sql copie des données vers la base facturation $sql = "INSERT INTO facturation.importcdr (calldate,clid,src,dst,duration,billsec)". " (SELECT calldate,clid,src,dst,duration,billsec FROM asteriskcdrdb.cdr WHERE cdr.calldate LIKE '$lastmonth')"; $req = mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); echo nl2br("copie données vers base factu OK");
Et voici l'erreur que j'ai :
Erreur SQL !<br>INSERT INTO facturation.importcdr (calldate,clid,src,dst,duration,billsec) (SELECT calldate,clid,src,dst,duration,billsec FROM asteriskcdrdb.cdr WHERE cdr.calldate LIKE '2016-04')<br>Table 'asteriskcdrdb.cdr' doesn't exist
Je force la connexion avec mon true donc je ne comprends pas où est l'erreur. Qqn a une idée par hasard?
Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie
EDIT : Ajout du LANGAGE dans les balises de code.
A voir également:
- Mysql_select 2 BDD
- Supercopier 2 - Télécharger - Gestion de fichiers
- 2 ecran pc - Guide
- Faire 2 colonnes sur word - Guide
- Whatsapp 2 - Guide
- Word numéro de page 1/2 - Guide
2 réponses
Bonjour,
Tu utilises l'ancienne extension mysql ....
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Je t'invite à passer à PDO ou à mysqli !
Commence par changer ça.
Tu utilises l'ancienne extension mysql ....
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Je t'invite à passer à PDO ou à mysqli !
Commence par changer ça.
malhek69
Messages postés
79
Date d'inscription
Statut
Membre
Dernière intervention
3
Alors ça malheureusement c'est bien la remarque que j'ai faite mais on me demande quand même de le faire avec :/
SAlut,
Le message d'erreur est explicite : la table asteriskcdrdb.cdr n'existe pas.
Si la connexion n'est pas définie pour la fonction mysql_query (le deuxième paramètre), celle-ci prend la dernière connexion mysql ouverte, soit $con2 dans ton cas. Or cette table est accessible via $con1. Donc :
Bonne journée,
Le message d'erreur est explicite : la table asteriskcdrdb.cdr n'existe pas.
Si la connexion n'est pas définie pour la fonction mysql_query (le deuxième paramètre), celle-ci prend la dernière connexion mysql ouverte, soit $con2 dans ton cas. Or cette table est accessible via $con1. Donc :
mysql_query($sql, $con1);
Bonne journée,
Ok je n'avais pas compris que ta requête accèdes aux deux serveurs, hélas cela ne semble pas possible.
La solution idéale pour accéder à plusieurs serveurs mysql via une requête semble être le Federated Storage Engine :
https://dev.mysql.com/doc/refman/5.6/en/federated-description.html
https://dev.mysql.com/doc/refman/5.0/en/federated-use.html
Je ne connais pas cette solution donc je ne pourrais t'en dire plus.
Une autre solution p-e plus simple serait de faire un export de la table du premier serveur vers le second serveur afin de se passer du problème de connexion à deux serveurs.
La solution idéale pour accéder à plusieurs serveurs mysql via une requête semble être le Federated Storage Engine :
https://dev.mysql.com/doc/refman/5.6/en/federated-description.html
https://dev.mysql.com/doc/refman/5.0/en/federated-use.html
Je ne connais pas cette solution donc je ne pourrais t'en dire plus.
Une autre solution p-e plus simple serait de faire un export de la table du premier serveur vers le second serveur afin de se passer du problème de connexion à deux serveurs.