Zurück   WordPress Deutschland Forum > Support > Plugins und Widgets

Antwort
 
Themen-Optionen Ansicht
Alt 24.02.2008, 20:55   #1 (permalink)
PostRank: 1
 
Benutzerbild von latita
 
Registriert seit: 07.12.2007
Ort: Stralsund
Beiträge: 31
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
latita ist offline   Mit Zitat antworten
Alt 24.02.2008, 21:09   #2 (permalink)
WPD-Team
 
Benutzerbild von marX
 
Registriert seit: 05.10.2006
Beiträge: 7.888
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
marX ist offline   Mit Zitat antworten
Alt 24.02.2008, 21:26   #3 (permalink)
PostRank: 1
 
Benutzerbild von latita
 
Registriert seit: 07.12.2007
Ort: Stralsund
Beiträge: 31
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

Geändert von latita (24.02.2008 um 21:29 Uhr).
latita ist offline   Mit Zitat antworten
Alt 24.02.2008, 21:36   #4 (permalink)
WPD-Team
 
Benutzerbild von marX
 
Registriert seit: 05.10.2006
Beiträge: 7.888
Und bei mysql_db_query() übergibst auch $verbindung als 3. Parameter?
marX ist offline   Mit Zitat antworten
Alt 24.02.2008, 21:40   #5 (permalink)
PostRank: 1
 
Benutzerbild von latita
 
Registriert seit: 07.12.2007
Ort: Stralsund
Beiträge: 31
jep mysql_db_query($datenbank, $abfrage, $verbindung);
__________________
Viele Grüße - Eve
latita ist offline   Mit Zitat antworten
Alt 24.02.2008, 22:12   #6 (permalink)
WPD-Team
 
Benutzerbild von marX
 
Registriert seit: 05.10.2006
Beiträge: 7.888
Was passiert, wenn du die DB-Verbindung $verbindung nicht schließt? (Wird ja eh am Script-Ende implizit geschlossen.)
marX ist offline   Mit Zitat antworten
Alt 24.02.2008, 23:41   #7 (permalink)
PostRank: 1
 
Benutzerbild von latita
 
Registriert seit: 07.12.2007
Ort: Stralsund
Beiträge: 31
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
latita ist offline   Mit Zitat antworten
Alt 25.02.2008, 16:41   #8 (permalink)
WPD-Team
 
Benutzerbild von marX
 
Registriert seit: 05.10.2006
Beiträge: 7.888
Ja, das hatte ich auch erst im Verdacht. Aber dann nicht weiter verfolgt, weil ich mir bei der Zeile
Zitat:
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.
marX ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 | Impressum | Ein Inpsyde.com Projekt