Connect auf drei DB's

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Connect auf drei DB's

    Guten Abend

    Ich bastle mir grad ein Script wo ich auf 3 Verschiedene DBs mit 2 Verschiedenen ZUgangsdaten zugreiffen muss!

    Hier mein Code:
    PHP-Code:
    define('MYSQL_HOST_LOGGON',     'XXX.XXX.XXX.XXX');
    define('MYSQL_USER_LOGGON',     'XXX');
    define('MYSQL_PASS_LOGGON',     'XXX');
    define('MYSQL_DATABASE_LOGGON''beta_loggon');
    define('CONNECT_LOGGON'mysql_select_db(MYSQL_DATABASE_LOGGONmysql_connect(MYSQL_HOST_LOGGONMYSQL_USER_LOGGONMYSQL_PASS_LOGGON)));


    define('MYSQL_HOST_REALM',     'XXX.XXX.XXX.XXX');
    define('MYSQL_USER_REALM',     'XXX');
    define('MYSQL_PASS_REALM',     'XXX');
    define('MYSQL_DATABASE_CHAR''beta_realm1_char');
    define('MYSQL_DATABASE_WORLD''beta_realm1_world');
    define('CONNECT_CHAR'mysql_select_db(MYSQL_DATABASE_CHARmysql_connect(MYSQL_HOST_REALMMYSQL_USER_REALMMYSQL_PASS_REALM)));
    define('CONNECT_WORLD'mysql_select_db(MYSQL_DATABASE_WORLDmysql_connect(MYSQL_HOST_REALMMYSQL_USER_REALMMYSQL_PASS_REALM))); 
    Später in meinem Script greiffe ich so auf die Tabellen zu:
    PHP-Code:
    $onlineplayer mysql_num_rows(mysql_query("SELECT guid FROM characters WHERE online = '1'"CONNECT_CHAR)); 
    Jedoch zeigt es mir folgenden Fehler an:
    PHP-Code:
    Warningmysql_query(): supplied argument is not a valid MySQL-Link resource in C:\xampp\htdocs\wow-manager2 (MULTIPLE)\inc\config.php on line 15 
    Was mache ich falsch?

    Oder habt ihr mir eine andere methode!

    Ich bin euch sehr dankbar wenn ihr mir helfen könntet!

    Gruss

  • #2
    du übergibst nicht den connection-resource sondern den return von mysql_select_db und dann wunderst du dich noch

    Kommentar


    • #3
      Imho kann eine Konstante nur ein primitiver Datentyp sein, also boolean, integer, float und string.

      Kommentar


      • #4
        Original geschrieben von PHP-Desaster
        Imho kann eine Konstante nur ein primitiver Datentyp sein, also boolean, integer, float und string.
        yep, das auch noch.

        Kommentar


        • #5
          Aber wenn ihc es so machen gehts auch ned:
          PHP-Code:
          define('MYSQL_HOST_LOGGON',     'XXX');
          define('MYSQL_USER_LOGGON',     'XXX');
          define('MYSQL_PASS_LOGGON',     'XXX');
          define('MYSQL_DATABASE_LOGGON''beta_loggon');
          $connect mysql_connect(MYSQL_HOST_LOGGONMYSQL_USER_LOGGONMYSQL_PASS_LOGGON);
          mysql_select_db(MYSQL_DATABASE_LOGGON$connect);


          define('MYSQL_HOST_REALM',     'XXX');
          define('MYSQL_USER_REALM',     'XXX');
          define('MYSQL_PASS_REALM',     'XXX');
          define('MYSQL_DATABASE_CHAR''beta_realm1_char');
          define('MYSQL_DATABASE_WORLD''beta_realm1_world');
          $conn_realm mysql_connect(MYSQL_HOST_REALMMYSQL_USER_REALMMYSQL_PASS_REALM);
          mysql_select_db(MYSQL_DATABASE_CHAR$conn_realm);
          mysql_select_db(MYSQL_DATABASE_WORLD$conn_realm); 

          Kommentar


          • #6
            wenn die db auf dem gleichen server ist und von der gleichen DBMS verwaltet wird dann einfach den Konstrukt verwenden:

            databasename.tablename.columnname

            dann ist gut

            Kommentar


            • #7
              Aber wenn ihc es so machen gehts auch ned
              Dann geht was nicht? Du wirst dann noch etwas anderes falsch machen! error_reporting auf E_ALL gesetzt?

              Kommentar


              • #8
                Also wie ist das jetzt gemeint des verstehe ich grad ned!



                DIe Datenbanken beta_realm1_char und beta_realm1_world sind auf dem gleichen server, die beta_loggon hingegen nicht!

                Ich brauche aber trozdem eine immer bestehende verbindung und DB select auf alle 3!

                Kommentar


                • #9
                  Original geschrieben von PHP-Desaster
                  Dann geht was nicht? Du wirst dann noch etwas anderes falsch machen! error_reporting auf E_ALL gesetzt?
                  Er will gleichzeitig auf 2 DBs zugreifen, aber die eine mysql_select_db überschreibt die andere, daher muss er mein Vorschlag realisieren.

                  Kommentar


                  • #10
                    Original geschrieben von Neonlight
                    Also wie ist das jetzt gemeint des verstehe ich grad ned!



                    DIe Datenbanken beta_realm1_char und beta_realm1_world sind auf dem gleichen server, die beta_loggon hingegen nicht!

                    Ich brauche aber trozdem eine immer bestehende verbindung und DB select auf alle 3!
                    Du baust nur 2 connection auf. Die 2. ist für den Zugriff auf die DBs auf dem gemeinsamen DBMS.

                    Kommentar


                    • #11
                      Tut mir ja leid wenn ich nicht euer Wissensstand habe.

                      Ich habe ja 2 Connections und muss auf 3 DBs zugreiffen, jedoch bin ich aus deiner oben genanten methode nicht schlau geworden!

                      Könnte nicht einer ein Beispiel machen?

                      Kommentar


                      • #12
                        seufz ....

                        select databasename1.tablename.columnname1, databasename1.tablename.columnname2 from databasename1.tablename where ...

                        select databasename2.tablename.columnname1, databasename2.tablename.columnname2 from databasename2.tablename where ...

                        select databasename1.tablename.columnname1, databasename2.tablename.columnname2 from databasename1.tablename inner join databasename2.tablename on ... where ...

                        wo ist das Problem?

                        Kommentar


                        • #13
                          Vielen vielen Dank!

                          Ich werde das mal testen!
                          Ich Danke für die scgnelle Hilfe!

                          Kommentar


                          • #14
                            Er will gleichzeitig auf 2 DBs zugreifen, aber die eine mysql_select_db überschreibt die andere, daher muss er mein Vorschlag realisieren.
                            Das wusste ich nicht! Man lernt nie aus

                            Kommentar


                            • #15
                              Die Verbindung zum dritten Server ist mit dem PHP mysql Datenbanktreiber schlicht nicht möglich.
                              bool mysql_select_db ( string $database_name [, resource $link_identifier ] )
                              Sets the current active database on the server that's associated with the specified link identifier. Every subsequent call to mysql_query() will be made on the active database.
                              mysqli (oder PDO) erzeugt allerdings mehrere Instanzen, sollte daher problemlos gehen.
                              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                              Kommentar

                              Lädt...
                              X