Zugriff auf falsche Datenbank

  • Ich möchte innerhalb von Wordpress Daten aus einer anderen Datenbank auslesen und verarbeiten. Es passieren dabei jedoch komische Dinge:

    Ich bekomme folgende Fehler:

    Zitat


    WordPress database error: [Table 'usr_webf32_2.wp_wpv_display_option' doesn't exist]
    SELECT post_id, column_count, display_text, display_thumbnail, ... FROM wp_wpv_display_option WHERE post_id = 37
    bei der Zeile mit 'mysql_select_db'

    bei der Zeile mit 'mysql_select_db' innerhalb von

    PHP
    function db_connect()  
    { 
        global $sql_hostname,$sql_database,$sql_dbuser,$sql_dbpassword; 
        require_once 'cqa-db-config.php'; 
        global $cqa_dbhandle; 
        $cqa_dbhandle = mysql_connect($sql_hostname, $sql_dbuser, $sql_dbpassword) or die("Konnte nicht zum mySQL-Server verbinden: ".mysql_error()); 
         mysql_select_db($sql_database, $cqa_dbhandle) or die("Konnte die Datenbank ".$sql_database." nicht oeffnen: ".mysql_error()); 
         return $cqa_dbhandle; 
    }

    Würde gerne verstehen was da passiert...

    Matthias

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Zitat

    Table 'usr_webf32_2.wp_wpv_display_option' doesn't exist


    Steht genau da :-)

    Du musst erstmal ne neue Connection aufbauen für die query und dann nochma die alte zur normalen WPDB connecten


  • Du musst erstmal ne neue Connection aufbauen für die query und dann nochma die alte zur normalen WPDB connecten


    Ich verstehe nur Bahnhof - liegt vermutlich daran das ich zuwenig von der Thematik grundsätzlich verstehe.

    Ich habe Code der bislang in einer Webseite ohne Wordpress funktionierte und habe versucht diesen in die neue Webseite mit Wordpress zu integrieren - und da bekomme ich halte diese Fehler.

    Heißt das jetzt das ich besser alles in eine Datenbank packen soll? Ich wollte gerne die Wordpress Sachen von den anderen Daten trennen.

    Matthias

  • Befindet sich die Datei [COLOR=#cc0000][FONT=Courier New]'cqa-db-config.php' [COLOR=black]im selbem Ordner, wie die PHP-Datei, die die Funktion [COLOR=#0000cc]db_connect() [COLOR=black]beinhaltet?[/COLOR][/COLOR][/COLOR][/FONT][/COLOR]

    [COLOR=#cc0000][FONT=Courier New][COLOR=black][COLOR=#0000cc][COLOR=black]Wenn nicht, dann musst Du diese entweder in das Verzeichnis kopieren oder die Pfadangabe im PHP-Script verändern.[/COLOR][/COLOR][/COLOR][/FONT][/COLOR]

    [COLOR=#cc0000][FONT=Courier New][COLOR=black][COLOR=#0000cc][COLOR=black]VG Elke[/COLOR][/COLOR][/COLOR][/FONT][/COLOR]

    Es gibt keine dummen Fragen, es gibt nur dumme Antworten...
    http://u-portal.de/

  • Befindet sich die Datei [COLOR=#cc0000][FONT=Courier New]'cqa-db-config.php' [COLOR=black]im selbem Ordner, wie die PHP-Datei, die die Funktion [COLOR=#0000cc]db_connect() [COLOR=black]beinhaltet?[/COLOR][/COLOR][/COLOR][/FONT][/COLOR]


    Befinden sich im selben Ordner und werden auch gefunden und geladen.

    Matthias

  • Oben in der Fehlermeldung behauptet er, dass es die Tabelle nicht gibt.
    Entweder der Datenbankname oder der Tabellenname stimmt nicht, oder beides?
    Kontrolliere mal bitte, ob die Datenbank wirklich usr_webf32_2 und die Tabelle wp_wpv_display_option heißt bzw. existiert.

    VG Elke

    Es gibt keine dummen Fragen, es gibt nur dumme Antworten...
    http://u-portal.de/

  • Query scheitert...

    Ich habe inzwischen gelernt das ein mysql_connect immer mit der alten Verbindung verbindet und damit Wordpress den Zugang zur eigenen Datenbank verhindert. Daher muss die Anweisung ein 'true' enthalten damit eine neue Verbindung aufgemacht wird und wie folgt heißen:

    PHP
    mysql_connect($sql_hostname, $sql_dbuser, $sql_dbpassword,true)

    Jetzt funktioniert der Zugriff, dafür scheitert die Query ohne Fehlermeldung:

    PHP
    db_connect();
        $seminare = mysql_query("SELECT * FROM cqa_seminare", $cqa_dbhandle);    
        if (!$seminare) {
                die('Ungültige Abfrage: ' . mysql_error());
        }


    liefert

    Zitat


    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in
    /cqaphp/cqa-SeminareTabellen.php on line 273
    Ungültige Abfrage:

    So dass ich nicht viel weiter bin...

    Matthias

  • mysql_connect() liefert ein Handle zurück, welches du für die Anfrage nutzen kannst. Also:

    Code
    [B]$cqa_dbhandle =[/B] mysql_connect($sql_hostname, $sql_dbuser, $sql_dbpassword,true);


    Könnte funktionieren (ungetestet).


    Ansonsten mal diesen Thread angucken:
    Mehrere Datenbanken in einer MySQL-Verbindung abfragen - PHP @ tutorials.de: Forum, Tutorial, Anleitung, Schulung & Hilfe

  • mysql_connect() liefert ein Handle zurück, welches du für die Anfrage nutzen kannst. Also:

    Code
    [B]$cqa_dbhandle =[/B] mysql_connect($sql_hostname, $sql_dbuser, $sql_dbpassword,true);


    Exact genau dieser Code steht auch bei mir.

    Matthias

  • Ja? So stehts aber oben nicht.


    Richtig, aber ich habe ja auch nur den Teil gepostet der geändert werden musste.


    Willst du nur die Datenbank auf dem aktuellen Server wechseln, oder hast du einen komplett anderen DB-Server?


    Gleicher Server nur andere Datenbank


    Wenn 1., dann vielleicht mal nur mit mysql_select_db() die DB wechseln


    genau das mache ich doch. Hier nochmal der entsprechende Code:

    PHP
    function db_connect() 
    {
    	global $sql_hostname,$sql_database,$sql_dbuser,$sql_dbpassword;
    	require_once 'cqa-db-config.php';
    	global $cqa_dbhandle;	
    	$cqa_dbhandle = mysql_connect($sql_hostname, $sql_dbuser, $sql_dbpassword,true) or die("Konnte nicht zum mySQL-Server verbinden: ".mysql_error());
     	mysql_select_db($sql_database, $cqa_dbhandle) or die("Konnte die Datenbank ".$sql_database." nicht oeffnen: ".mysql_error());
     	return $cqa_dbhandle;
    }


    oder gleich mysql-db-query() verwenden.


    bringt mir das einen logischen Vorteil? Ich hatte bislang in einem PHP Forum gelesen das mysql-db-query unbedingt zu vermeiden ist.

    Matthias

  • Scheint ein prinzipielles PHP Problem zu sein. Wenn ich nämlich die Daten aus der Funktion

    PHP
    function db_connect() 
    {
        global $sql_hostname,$sql_database,$sql_dbuser,$sql_dbpassword;
        require_once 'cqa-db-config.php';
        global $cqa_dbhandle;    
        $cqa_dbhandle = mysql_connect($sql_hostname, $sql_dbuser, $sql_dbpassword,true) or die("Konnte nicht zum mySQL-Server verbinden: ".mysql_error());
        mysql_select_db($sql_database, $cqa_dbhandle) or die("Konnte die Datenbank ".$sql_database." nicht oeffnen: ".mysql_error());
        return $cqa_dbhandle;
    }

    herauskopiere und direkt in den Code schreibe:

    dann funktioniert es.

    Warum ?

    Matthias

  • Wenn es sich um den gleichen MySQL-Server handelt, warum willst du dann eine neue Verbindung aufbauen? Ein Wechsel der DB mit mysql_select_db() wäre meiner Meinung nach ausreichend? Musst anschließend natürlich wieder zur WP-DB zurückwecheln.
    Noch einfacher wäre natürlich mysql_db_query(), wobei ich jetzt nichts näheres dazu sagen kann - bisher bin ich noch nicht in die Verlegenheit gekommen, das nutzen zu müssen.

    Ansonsten spricht DB-technisch auch nichts dagegen, alles in einer einzelnen DB zu verwalten.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!