Namen der momentan aktiven Datenbank

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

  • Namen der momentan aktiven Datenbank

    Hallo,

    ich bräuchte einen Weg, um den Namen jener MySQL-Datenbank zu erhalten, die gerade aktiv ist.

    Damit meine ich den Namen der Datenbank, die durch mysql_select_db() aktiviert wurde.
    Leider ist es mir aber nicht möglich, diesen Namen so zu speichern, dass ich ihn später abrufen könnte.

    Gibt es irgendeine Funktion oder sonstige Möglichkeit, diesen zu bekommen?

    Herzlichen Dank im Voraus,
    rob

  • #2
    wenn du ...
    PHP-Code:
    mysql_select_db('huhu'); 
    machst, mache doch nun einfach
    PHP-Code:
    $db 'huhu';
    mysql_select_db($db); 
    jetzt hast du in $db immer die DB drin....
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      eben, das geht leider nicht

      Es geht darum, dass die User unseres Scripts in den Kopf- und Fussdateien natürlich auch "fremdartige" Scripts includen, die dann vielleicht eine andere Datenbank aufrufen.
      Da kann ich ja nicht verlangen, dass der Datenbanknamen dann immer in der gleichen Variable abgespeichert wird

      Kommentar


      • #4
        ich verstehe den hintergrund immer noch nicht.

        quick&dirty? -> aber du kannst ja mal
        Code:
        SHOW TABLES
        an die DB senden. nun brauchst du nur noch den spaltennamen auslesen.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Ich glaube, auch das würde nicht funktionieren

          Aber ich will's ein wenig klarer formulieren versuchen:
          In unserem Script bauen wir eine DB-Verbindung auf, wählen Datenbank aus, usw.
          Danach steht es aber dem User frei, in einer Kopfdatei noch irgendwelche Sachen zu includen.
          Nehmen wir an, jemand includet in dieser Kopfdatei ein anderes Script, das ebenfalls eine DB-Verbindung aufbaut, aber eine andere Datenbank auswählt, so funktioniert anschliessend in unserem Script keine DB-Abfrage mehr, weil ja eine falsche Datenbank ausgewählt wurde!
          Darum will ich jetzt noch in unsere DB-Klasse eine Überprüfung einbauen, ob immer noch die richtige Datenbank ausgewählt ist. Wenn nicht, muss sie halt nochmals ausgewählt werden.

          Aber eben - um das überhaupt einmal festzustellen, brauche ich zuerst einmal den Namen der aktuellen Datenbank...

          Kommentar


          • #6
            wenn der user ne andere (eigene) verbindung aufbaut, hat er einen anderen connection link zur db.

            also unberührt von deinem script.

            und bei mysql_query() gibt es auch einen 2. parameter. www.php.net
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              ja, Du hast Recht, aber irgendwie scheint das trotzdem nicht zu funktionieren...
              Kann es daran liegen, dass beim Script, das ich include, jeweils keine Link-ID verwendet wird bei mysql_query()?
              Sodass dieses Script eigentlich meine ID "missbraucht"?

              Kommentar


              • #8
                ich versteh zwar nciht, was du jetzt meinst, aber teste mal selber ein wenig rum ...
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Ich nerve, ich weiss

                  auf PHP.NET steht unter mysql_connect() :
                  Für den Fall, dass ein zweiter Aufruf von mysql_connect() mit den gleichen Argumenten erfolgt, wird keine neue Verbindung aufgebaut, sondern die Verbindungs-Kennung der schon bestehenden Verbindung zurückgeliefert. Der Parameter neue_Verbindung beeinflusst dieses Verhalten und mysql_connect() öffnet immer eine neue Verbindung, sogar dann, wenn mysql_connect() zu einem früheren Zeitpunkt mit den gleichen Parametern aufgerufen wurde.
                  Ich habe das jetzt auch überprüft und das eingebundene Script übernimmt meine Link-ID.
                  Nachher wählt dieses Script eine andere Datenbank aus, arbeitet weiter, ist fertig und mein Script steigt wieder ein.
                  Da sich jetzt aber die Datenbank geändert hat, findet das Script nicht mehr die entsprechenden Tabellen...

                  Ich werde es jetzt wohl einfach so machen, dass ich nochmals mysql_connect() aufrufe und die Datenbank nochmals auswähle...

                  Kommentar


                  • #10
                    ... aber gibt es denn wirklich keinen direkten Befehl oder sonst ein Weg, um den Namen der aktuellen Datenbank zu erfahren?
                    Glaub ich einfach nicht

                    Kommentar


                    • #11
                      wenn die der link zur db noch korrekt ist, kannst du das doch ganz einfach machen.

                      1. du machst immer am ende noch einmal ein mysql_select_db() oder

                      2. du machst aus z.b. SELECT * FROM tabelle ein SELECT * FROM datenbankname.tabelle
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar

                      Lädt...
                      X