PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL-PHP:supplied argument is not a valid MySQL-Link resource...



djaliced
19-09-2007, 20:08
Hallo,
ich habe folgendes Problem wo ich einfach nicht weiter kommen.
Und zwar will ich einfach nur eine mySQL-Abfrage machen in dieser Form:


$dbc = mysql_connect("XYZ", "XYZ", "XYZ");
$dbh = mysql_select_db("contacts",$dbc);
$sql = "SELECT * FROM member";
$result = mysql_query($sql,$dbh);


Leider klappt das nicht (Host, username und Passwort sind okay, damit kann ich mich auch per phpmyadmin einloggen) ich bekomme folgende Fehlermeldung:



Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in...on line 13

(Line 13 ist $result = mysql_query...)

Normalerweise lässt sich ja daraus schließt, dass der zurückgelieferte Datenbankhandel $dbh nicht okay ist. Aber ich habe da das Script dann modifiziert, und mir mal die Rückgabewerte angeschaut.


if ($dbc = mysql_connect("XYZ", "XYZ", "XYZ"))
echo "dbc $dbc <br>";

if ($dbh = mysql_select_db("contacts",$dbc))
echo "dbh $dbh";

$sql = "SELECT * FROM member";
$result = mysql_query($sql,$dbh);


Die Ausgabe hat mich dann doch verblüfft:


dbc Resource id #5
dbh 1
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in ... on line 13


Jetzt frage ich mich, wo steckt da der Fehler? Oder hab ich einfach nur ein Brett vor dem Kopf, so dass ich den ersichtlichen Fehler nicht sehe :D

Kennt einer von Euch das Problem oder kann mir vielleicht einer einen Denkanstoß geben?

Gruß Olly

System: PHP 5.2.3 / MySQL 5.0.45



EDIT:

Ich habe mein Problem gelöst.
Richtig muss es lauten:


$dbc = mysql_connect("XYZ", "XYZ", "XYZ");
mysql_select_db("contacts",$dbc);
$sql = "SELECT * FROM member";
$result = mysql_query($sql,$dbc);


und nicht:


$dbc = mysql_connect("XYZ", "XYZ", "XYZ");
$dbh = mysql_select_db("contacts",$dbc);
$sql = "SELECT * FROM member";
$result = mysql_query($sql,$dbh);

BLUESCREEN3D
20-09-2007, 15:32
Vor allem solltest du mal die Rückgabewerte der Funktionsaufrufe auf Fehler überprüfen.
Und am besten die DB-Zugriffe mit Hilfe einer Klasse abstrahieren.

djaliced
20-09-2007, 18:54
Vor allem solltest du mal die Rückgabewerte der Funktionsaufrufe auf Fehler überprüfen.

Hm, passiert im eigentlichem Script ja, habe das hier bloß nicht getippt damit es besser zu lesen ist. ;)



Und am besten die DB-Zugriffe mit Hilfe einer Klasse abstrahieren.

Da könnte ich mir ja auch mal mysqli anschauen. ;)

BLUESCREEN3D
21-09-2007, 15:03
Da könnte ich mir ja auch mal mysqli anschauen. ;)
Ich meinte eher sowas in Richtung PDO oder eine eigene Klasse, damit du das DBMS leicht wechseln kannst.