IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

mysql_select 2 BDD


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Points : 52
    Points
    52
    Par défaut mysql_select 2 BDD
    Bonjour à tous,

    j'ai deux BDD mysqlqui 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:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <?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'obtiens:

    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?



    Merci à tous !

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    En premier lieu, tu peux oublier les fonctions mysql_xxxxx : l'API MySQL est obsolète depuis PHP 5.5 et supprimée en PHP 7.0.

    Ensuite, tu as un truc bizarre au niveau de la sélection de la base ici : @mysql_select_db(‘asteriskcdrdb′, $con1);, mais c'est peut-être un problème au niveau du post sur le forum et non pas du code lui-même.

    Enfin, lorsque tu as deux connexions en parallèle, il faut systématiquement préciser la connexion à utiliser lorsque tu exécutes une requête. Par exemple :$req = mysql_query($sql, $con1);.

    Mon conseil : recommence avec PDO
    Comprendre PDO
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Quick Report et impression de données hors BDD
    Par gRRosminet dans le forum C++Builder
    Réponses: 8
    Dernier message: 19/08/2002, 09h47
  2. portabilité et BDD
    Par delire8 dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/07/2002, 10h59
  3. connection a une BDD MySql
    Par delire8 dans le forum MFC
    Réponses: 7
    Dernier message: 19/06/2002, 18h18
  4. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26
  5. Probleme de filtre dans bdd
    Par scorpiwolf dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/06/2002, 10h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo