webForumDet fria alternativet

MySQL felmeddelande

Databaser & SQL

18 svar · 444 visningar · startad av lillebror

Medlem sedan apr. 20041 597 inlägg
Frågan#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

Medlem sedan apr. 20041 597 inlägg
#2

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

Medlem sedan mars 20032 667 inlägg
#3

Lite kod hade underlättat betydligt. ;)

Medlem sedan apr. 20041 597 inlägg
#4

Dessa rader syftar felmeddelandet på:

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

:h

Medlem 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

Medlem 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);
}
Medlem sedan nov. 2000857 inlägg
#7

Flyttas från PHP..

Medlem sedan mars 20025 907 inlägg
#8

Hur blir det om du ändrar funktionen till

function closedb(&$conn) {
	mysql_close($conn);
}
?>
Medlem 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?

Medlem sedan dec. 200012 464 inlägg
#10

Hur ser funktionen opendb ut?

Medlem 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;
}
Medlem sedan dec. 200012 464 inlägg
#12

Varför @ vid mysql_connect?

Medlem sedan apr. 20041 597 inlägg
#13

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

Medlem 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

Medlem 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...

Medlem sedan apr. 20041 597 inlägg
#16

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

Medlem 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?

Medlem 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."

Medlem 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);
266 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)