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
18 svar · 444 visningar · startad av lillebror
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
Oj, denna tråd kanske hamnade i fel forum ser jag...:OO
Lite kod hade underlättat betydligt. ;)
Dessa rader syftar felmeddelandet på:
25:function closedb($conn) {
26: mysql_close($conn);
27:}
28:?>
:h
Jaha, och vad är $conn ? Det är inte möjligen så att den är 5, och att den inte borde vara det? :q
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> ";
$number = $number-1;
} else {
echo "<a href=./".$objRS[filename].">".$objRS[pagename]."</a>";
}
echo "</span>";
}
closedb($conn);
}
Flyttas från PHP..
Har igentligen ingen aning men det är inte så att du måste deklararera någon variabel globalt?
Hur ser funktionen opendb ut?
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;
}
Varför @ vid mysql_connect?
Det stod så i ett exempel i en bok :)
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
Hur blir det om du ändrar funktionen till
PHP:--------------------------------------------------------------------------------
function closedb(&$conn) {
mysql_close($conn);
}
?>
--------------------------------------------------------------------------------
Det blev ingen skillnad...
Någon annan idé om vad det kan vara?
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?
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."
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);