Suche Rat bei einer Fehlermeldung

  • Hallo,
    ich benutze das Plugin Samsarin um PHP-Code in einem Widget auszuführen.
    Das Problem ist, dass bei mir das Widget immer an letzter Stelle stehen muss. Steht es zwischen anderen Widgets, die von Wordpress eine Datenbankverbindung erfordern, wird mir ein Fehler angezeigt.

    Das "lustige": Ich habe den Entwickler von Samsarin schon um Hilfe gebeten und kurioserweise funktioniert der Code und die Ausführung sowohl bei ihm lokal, als auch auf dem Server.

    Kurz zu meinem Code:
    Ich öffne eine Datenbankverbindung, Frage die ID aller Bücher ab, die mir gehören und die Anzahl der Kommentare zum Buch.
    Wähle mir ein zufälliges Buch aus und zeige dessen Bild mit einem Link zur Detailseite an.
    Beende die Datenbankverbindung.

    Die Fehlermeldung ist immer folgende:

    Code
    Warning:  mysql_error(): 7 is not a valid MySQL-Link resource in /var/www/web333/html/blog/wp-includes/wp-db.php on line 215

    Was bedeutet die 7? Wie kann ich den Fehler eingrenzen?
    Auf dem Server meiner Seite arbeiten PHP 5.1.2 und Wordpress 2.3.1

    Viele Grüße - Eve

    • 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

  • Wie öffnest und schließt du die MySQL-Verbindung? Ich vermute mal, du verwendest einfach keine explizite Verbindungskennung, und PHP schließt an der Stelle entweder die WP-Datenbankverbindung oder überschreibt den internen Resource-Identifikator. Und beim nächsten Versuch die DB zu kontaktieren gibts dann den Fehler.

    PHP: mysql_connect - Manual

  • Hi danke für deine Antwort,
    ich öffne die Verbindung mit
    $verbindung = mysql_connect("localhost", "name", "passwort");
    und schließe mit
    mysql_close($verbindung);

    um die Datenbank anzusprechen nutze ich nach wie vor mysql_db_query();

    Soweit ich weiß, hat mein Helfer (bei dem es geht) nichts an meinem Code verändert.

    Viele Grüße - Eve

    Einmal editiert, zuletzt von latita (24. Februar 2008 um 21:29)

  • Eigentlich passiert dann nichts weiter. Es hat keine Auswirkungen. Ich hab das damals reingeschrieben, weil ich dachte es könnte daran liegen. Nachdem es jedoch keine Auswirkungen zeigte, ließ ich es drin, da es an der Stelle ja trotzdem nicht verkehrt ist.

    Du hast mir ja den Link zum PHP Manual gegeben, den ich auch *hüstel* (nur) überflogen habe....
    Mein Helfer hat inzwischen die Lösung gefunden, und wenn man richtig liest, steht die auch im Manual (da hat er das auch her)

    Wenn man innerhalb eines Skriptes ein zweites Mal mysql_connect aufruft, wird keine neue Verbindung aufgebaut, sondern die Verbindungskennung der schon bestehenden Verbindung zurückgeliefert.
    Man muss dann also den Wert true bei 'bool $neue_Verbindung' setzen.

    Und siehe da, es klappt.

    Eigentlich hätte es bei mir beim Wort bool schon klingeln müssen :?

    Viele Grüße - Eve

  • Ja, das hatte ich auch erst im Verdacht. Aber dann nicht weiter verfolgt, weil ich mir bei der Zeile

    Zitat von PHP Manual

    If a second call is made to mysql_connect() with the same arguments [...]


    gedacht habe, du willst eine andere Verbindung (d.h. mit anderen Verbindungsdaten) öffnen. Dann sollte ja stets eine neue Verbindung erstellt werden. So hab ich das zumindest verstanden.

    Aber wenn du den Fehler gefunden hast ist ja alles in Butter. :-D

Jetzt mitmachen!

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