---
title: "Nästlande funktioner"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/122128-nästlande-funktioner"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "lillebror"
published: "2005-02-09T22:10:56.000Z"
updated: "2005-02-10T10:46:29.000Z"
replies: 2
views: 243
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/122128-nästlande-funktioner"
---

# Nästlande funktioner

## #1 — lillebror, 2005-02-09T22:10Z

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

	$SQL = mysql_query("SELECT pagename FROM tblSiteNavigation ORDER BY pagename") or die (mysql_error());
		
		while($objRS = mysql_fetch_array($SQL)) {
		echo "Sidnamn: <b>".$objRS[pagename]."</b> | ";
		}

	closedb($conn);
}
```

Är det möjligt att ha nästlande funktioner? Funktionen **opendb($dbHost, $dbUser, $dbPassword);** ligger i filen include.db.php utanför web-rooten. När jag försöker köra denna funktion som skall skriva ut en meny får jag upp felmeddelandet "Databaskopplingen EJ initierad!" som jag själv har angett ska komma upp om allt inte står rätt till. 

Alla include-filer anropar jag i index.php i rätt ordning med hänsyn till i vilken ordning funktionerna används i index.php.

Jag har prövat att stoppa in variablerna $dbHost, $dbUser, $dbPassword och $dbName direkt i funktion dbopen och mysql_select_db och då fungerar det utan problem. Dock får jag ett felmeddelande på slutet när jag ska stänga databasen igen som ser ut så här:

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

Raden som ovanstående felmeddelande syftar på är **mysql_close($conn);** i nedanstående funktion:

```
function closedb($conn) {
	mysql_close($conn);
}
```

Någon idé? :)

Permalänk: https://www.webforum.nu/p/122128

## #2 — Fuel, 2005-02-10T09:23Z

variablerna måste igenom den första funktionen såvida dom inte är globala

function show_menu($dbHost, $dbUser, $dbPassword) {
	
	$conn = opendb($dbHost, $dbUser, $dbPassword);

du har också func_get_args() och func_num_args() som är ganska nice <http://se2.php.net/manual/sv/function.func-get-args.php>

Permalänk: https://www.webforum.nu/p/1549659

## #3 — lillebror, 2005-02-10T10:46Z

> variablerna måste igenom den första funktionen såvida dom inte är globala. 
> 
> function show_menu($dbHost, $dbUser, $dbPassword) {
> 
> $conn = opendb($dbHost, $dbUser, $dbPassword);

Nu har jag valt att mata funktionen som skall visa min meny med databasvariablerna. Om jag skulle välja att göra dessa variabler globala så skulle en funktion i funktionen känna igen dessa och därigenom har åtkomst till dem. Min fråga nu är om det är en säkerhetsrisk att göra dessa databasvariabler globala. Kan tillägga att dessa databasvariabler lagras utanför web-rooten. 

Några synpunkter på detta?  :)

Permalänk: https://www.webforum.nu/p/1549691

---

Tråden på webben: https://www.webforum.nu/amne/php/122128-nästlande-funktioner
