webForumDet fria alternativet

MySQL felmeddelande

18 svar · 444 visningar · startad av lillebror

lillebrorMedlem sedan apr. 20041 597 inlägg
#1

Hej,

Jag undrar vad följande felmeddelande står för:

Warning: mysql_close(): 5 is not a valid MySQL-Link resource in /domain/include.db.php on line 26

Trevlig helg! :birp

lillebrorMedlem sedan apr. 20041 597 inlägg
#2

Oj, denna tråd kanske hamnade i fel forum ser jag...:OO

K@llenMedlem sedan mars 20032 667 inlägg
#3

Lite kod hade underlättat betydligt. ;)

lillebrorMedlem sedan apr. 20041 597 inlägg
#4

Dessa rader syftar felmeddelandet på:

25:function closedb($conn) {
26:	mysql_close($conn);
27:}
28:?>

:h

aasahMedlem sedan mars 20034 471 inlägg
#5

Jaha, och vad är $conn ? Det är inte möjligen så att den är 5, och att den inte borde vara det? :q

lillebrorMedlem sedan apr. 20041 597 inlägg
#6

Detta är huvudfunktionen där closedb() förekommer längst ner i show_menu():


function show_menu($dbHost, $dbUser, $dbPassword, $dbName, $activeUser) {
			
	##### ÖPPNAR DATABAS OCH VÄLJER DATABAS ##############################
	$conn = opendb($dbHost, $dbUser, $dbPassword);
	mysql_select_db($dbName);

	if($activeUser != "Gäst") {
	$SQLmembershiplevel = mysql_query("SELECT membershiplevelID FROM tblMember WHERE username = '$activeUser'") or die (mysql_error());
	$membershiplevel = mysql_result($SQLmembershiplevel,0);
 	#echo "M-level: ".$membershiplevel."";
	} else {
	$membershiplevel = 4;
	}

	$SQLmenu = mysql_query("SELECT pagename, filename FROM tblSiteNavigation WHERE membershiplevelID >= $membershiplevel ORDER BY menu_order ASC") or die (mysql_error());
		
	$number = mysql_num_rows($SQLmenu)-1;

		while($objRS = mysql_fetch_array($SQLmenu)) {
		echo "<span class='menu'>";
			if($number>0) {
				echo "<a href=./".$objRS[filename].">".$objRS[pagename]."</a>&nbsp;&nbsp;";
				$number = $number-1;
			} else {
				echo "<a href=./".$objRS[filename].">".$objRS[pagename]."</a>";
			}
		echo "</span>";
		}

	closedb($conn);
}
NiklassonMedlem sedan nov. 2000857 inlägg
#7

Flyttas från PHP..

PeeerMedlem sedan mars 20025 907 inlägg
#8

Hur blir det om du ändrar funktionen till

function closedb(&$conn) {
	mysql_close($conn);
}
?>
Jesper TMedlem sedan nov. 20017 144 inlägg
#9

Har igentligen ingen aning men det är inte så att du måste deklararera någon variabel globalt?

LarsGMedlem sedan dec. 200012 464 inlägg
#10

Hur ser funktionen opendb ut?

lillebrorMedlem sedan apr. 20041 597 inlägg
#11

Funktionen opendb() ser ut så här:

function opendb($server, $user, $pword) {
	
	################ INITIERAR DATABASUPPKOPPLING #############
	$conn = @mysql_connect($server, $user, $pword)
		or die("<font color=red><b>Databaskopplingen EJ initierad!</b></font>");
	#print("<b>Databaskopplingen upprättad!</b><br><br>");
	
	################ NOLLSTÄLLER ##############################
	$server = "";
	$user = "";
	$pword = "";
	
	################ SKICKAR TILLBAKA $conn TILL closedb() ####
	return $conn;
}
LarsGMedlem sedan dec. 200012 464 inlägg
#12

Varför @ vid mysql_connect?

lillebrorMedlem sedan apr. 20041 597 inlägg
#13

Det stod så i ett exempel i en bok :)

lillebrorMedlem sedan apr. 20041 597 inlägg
#14

Jaha, och vad är $conn ? Det är inte möjligen så att den är 5, och att den inte borde vara det?

Vad får dig att tro att $conn skulle vara 5? :OO

lillebrorMedlem sedan apr. 20041 597 inlägg
#15

Hur blir det om du ändrar funktionen till

PHP:--------------------------------------------------------------------------------
function closedb(&$conn) {
mysql_close($conn);
}
?>
--------------------------------------------------------------------------------

Det blev ingen skillnad...

lillebrorMedlem sedan apr. 20041 597 inlägg
#16

Någon annan idé om vad det kan vara?

PeeerMedlem sedan mars 20025 907 inlägg
#17

lillebror skrev:

Jaha, och vad är $conn ? Det är inte möjligen så att den är 5, och att den inte borde vara det?

Vad får dig att tro att $conn skulle vara 5? :OO

Felmeddelandet kanske? :OO

lillebror skrev:

Warning: mysql_close(): 5 is not a valid MySQL-Link resource in /domain/include.db.php on line 26

Hur som helst, provade just hela din kod (skapade tabeller och testade) och jag fick inget sådant felmeddelande (fick några notice på att du inte använder dig av fnuttar ex här $objRS[filename], men annars inget). Koden ser i verkligheten ut exakt så som du har skrivit här? Vilken PHP/MySQL-version använder du dig av?

lillebrorMedlem sedan apr. 20041 597 inlägg
#18

När jag prövade att "remma" #closedb($conn); så försvann felmeddelandet. Men då har jag ju inte stängt databasuppkopplingen. Jag har varit inne på php.net och sökt på funktionen mysql_close() för att se om det finns några ytterligare ledtrådar.

Svar på en tidigare kommentar:

Varför @ vid mysql_connect?

Enligt php.net: "You can suppress the error message on failure by prepending a @ to the function name."

lillebrorMedlem sedan apr. 20041 597 inlägg
#19

Jag tror jag löste problemet med anslutningen till databasen. jag tog helt enkelt bort den nya uppkopplingen som jag hade i en funktion i huvudfilen.

Nu fick jag dock upp ett annat fel som jag inte hade tidigare...

Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 8 in /domains//include/include.menu.php on line 19
M-level: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY menu_order ASC' at line 1

Så här ser koden ut...

18: $SQLmembershiplevel = mysql_query("SELECT membershiplevelID FROM tblMember WHERE username = '$activeUser'") or die (mysql_error());
	19: $membershiplevel = mysql_result($SQLmembershiplevel,0);
131 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)