Not a valid result ressource kommt bei einer von zwei gleichen Verbindungen
Not a valid result ressource kommt bei einer von zwei gleichen Verbindungen
am 28.11.2006 00:33:45 von Kai Koenig
Hallo,
ich nutze eine Funktion (ohne Rückgabewert), die einen String zerlegt und
dann in eine Datenbank schreibt.
Das funktioniert wunderbar.
Verwende ich jetzt dieselbe Verbindung zur Datenbank etwas früher im Script
bekomme ich den "Not a valid result ressource"-Fehler ausgegeben.
Ich möchte an der Stelle prüfen, ob ein Datensatz bereits existiert.
In der Funktion stehen $querystring und $queryvergleich, außerdem hole ich
mir mit global $databaseID die Verbindungsdaten zur Datenbank aus einer
eingebundenen Datei.
So sieht es da aus, wo es funktioniert (weiter unten im Script)
if (!mysql_query($querystring, $databaseID))
{...}
So sieht es da aus, wo der Fehler kommt:
mysql_num_rows(mysql_query($queryvergleich,$databaseID))
Wenn das Ergebnis davon != 0 ist, gibt es den Datensatz schon, und es wird
kein neuer geschrieben.
Ich bin der Meinung, schon alles probiert zu haben und habe keine Idee mehr,
woran es noch liegen könnte.
Ich brauche eine Axt für meinen Wald...
Vielen Dank für jeden Hinweis!
Viele Grüße
Kai
Re: Not a valid result ressource kommt bei einer von zwei gleichenVerbindungen
am 28.11.2006 00:50:09 von Niels Braczek
Kai Koenig schrieb:
> So sieht es da aus, wo der Fehler kommt:
> mysql_num_rows(mysql_query($queryvergleich,$databaseID))
Mache wenigstens minimale Fehlerbehandlung.
$result =3D mysql_query( $queryvergleich, $databaseID );
if ( !$result ) {
echo 'Hier ging etwas schief: ';
echo $queryvergleich, '
', mysql_error();
}
$n_recs =3D mysql_num_rows( $result );
> Ich bin der Meinung, schon alles probiert zu haben und habe keine Idee =
mehr,=20
> woran es noch liegen könnte.
Vermeide die Schachtelung von Funktionen. Weise deren Ergebnis jeweils
einer Variablen zu, damit du das Ergebnis zum Debuggen ausgeben kannst.
> Ich brauche eine Axt für meinen Wald...
Etwas weniger Spaghetti und etwas mehr Struktur reichen da schon.
MfG
Niels
--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Re: Not a valid result ressource kommt bei einer von zwei gleichen Verbindungen
am 28.11.2006 01:43:10 von Oliver Block
Kai Koenig wrote:
> Verwende ich jetzt dieselbe Verbindung zur Datenbank etwas früher im
> Script bekomme ich den "Not a valid result ressource"-Fehler ausgegeben.
> Ich bin der Meinung, schon alles probiert zu haben und habe keine Idee
> mehr, woran es noch liegen könnte.
Geraten: Du verwendest irgendwo den || Operator, z.B. '|| die(...)' oder so
ähnlich ersetze ihn durch 'or'.
Wie gesagt, das war geraten. Anhand dessen, was Du an Informationen
geliefert hast fällt mir nichts ein.
Allgemein: Die Funktion erwartete eine Ressource, sie erthält aber keine.
Ich würde das Auschschlußprinzip verwenden.
Gruß,
Oliver
--
Leben ist mehr als ...
Re: Not a valid result ressource kommt bei einer von zwei gleichenVerbindungen
am 02.12.2006 18:40:33 von Bernhard Brockmann
Kai Koenig schrieb:
> So sieht es da aus, wo es funktioniert (weiter unten im Script)
> if (!mysql_query($querystring, $databaseID))
hier verwendest Du eine Funktion, die einen Ressourceidentifier, also
eine Referenz auf eine Ergebnismenge, zurückgiebt.
>
> So sieht es da aus, wo der Fehler kommt:
> mysql_num_rows(mysql_query($queryvergleich,$databaseID))
hier erwartet die Funktion eben die Referenz auf die Ergebnismenge, Du
gibst ihr aber die VerbindungsId. Das sind zwei ganz unterschiedliche Dinge.
Bernhard
Re: Not a valid result ressource kommt bei einer von zwei gleichen Verbindungen
am 02.12.2006 19:14:22 von Holger Pollmann
Bernhard Brockmann schrieb:
>> So sieht es da aus, wo der Fehler kommt:
>> mysql_num_rows(mysql_query($queryvergleich,$databaseID))
>
> hier erwartet die Funktion eben die Referenz auf die Ergebnismenge,
> Du gibst ihr aber die VerbindungsId. Das sind zwei ganz
> unterschiedliche Dinge.
Nein, mysql_query() gibt einen Resource-ID zurück. Drum steht auf
auch folgendes Beispiel:
| $result = mysql_query("SELECT * FROM table1", $link);
| $num_rows = mysql_num_rows($result);
--
( ROT-13 if you want to email me directly: uvuc@ervzjrexre.qr )
"Das saarl. VwVfG läßt eine Interpretation deutscher Gesetze nur dann
zu, wenn sie nicht eindeutig sind." Manfred Saar, Präsident
Apothekerkammer d. Saarlandes. heute-journal v. 8. August 2006.