Forbind til database, inden i function?

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
kristianj
Begynder
Indlæg: 15
Tilmeldt: 8. nov 2013, 12:00

Forbind til database, inden i function?

Indlæg af kristianj » 13. nov 2013, 22:52

Hej, jeg har prøvet at forbinde til min database, ved at inkludere den i min fil med functioner, men den kan ligesom ikke finde min variabel $con (Den som har sql forbindelse).

Har set på google, noget med et Scope, fordi hvis du skal bruge normale variabler, SKAL de være inden for din function?

Nogen som kan hjælpe mig mod en løsning, hvor på det er muligt at finde $con, INDENFOR sin function?


Mvh Kristian

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg: 1528
Tilmeldt: 28. dec 2010, 10:49

Re: Forbind til database, inden i function?

Indlæg af ThomasI » 14. nov 2013, 10:07

Du burde kunne sætte en global variabel som her:

http://www.w3schools.com/php/php_superglobals.asp

men umiddelbart så burde det virke så længe din variable er sat et eller andet sted i dokumentet... derfor ville jeg nok spørge...

Husker du at inkludere variablen overhoved? ;)

kristianj
Begynder
Indlæg: 15
Tilmeldt: 8. nov 2013, 12:00

Re: Forbind til database, inden i function?

Indlæg af kristianj » 14. nov 2013, 10:12

Har kigget på det med GLOBALS, men er skam ikke helt sikker på hvordan det fungere med database osv :)

Og ja, har husket min variabel ^^ :)

kristianj
Begynder
Indlæg: 15
Tilmeldt: 8. nov 2013, 12:00

Re: Forbind til database, inden i function?

Indlæg af kristianj » 14. nov 2013, 10:41

Fandt ud af det,

Har fundet frem til dette.

global $con;
$con = mysqli_connect("localhost","root","","test");

$con->set_charset('utf8');

function test()
{
global $con;


}

Skulle bare sætte global foran ^^

Mange tak for det :)

Brugeravatar
Daniel
Admin
Admin
Indlæg: 625
Tilmeldt: 14. jun 2011, 09:27
Geografisk sted: Danmark, Fyn, Nørre Aaby
Kontakt:

Re: Forbind til database, inden i function?

Indlæg af Daniel » 14. nov 2013, 12:35

Det er korrekt at når du skal bruge en variabel inde i en funktion, så er du nødt til at gøre den global, ellers virker det ikke, da alle funktionens variabler generelt er lokale.

Men alt efter om det er et større projekt eller om det er nogle tests du laver, så kan det være svært at huske at skulle skrive global $variable; hver gang man bruger sin connection variabel inde i en funktion, især hvis man har rigtig mange funktioner. Derfor kan det være en fordel at sætte den som global hele vejen igennem, det gøres sådan her.

Kode: Vælg alt

$GLOBALS['con'] = mysqli_connect('localhost', 'root', '', 'test');
$GLOBALS['con']->set_charset('utf8');

function test()
{
    $query = mysqli_query($GLOBALS['con'], "SELECT * FROM tabel");
}
Det er lidt længere at skrive, men generelt også nemmere at huske (min mening), kan give mange frustrationer inden man opdager at man har glemt at skrive global $variabel;. :D

kristianj
Begynder
Indlæg: 15
Tilmeldt: 8. nov 2013, 12:00

Re: Forbind til database, inden i function?

Indlæg af kristianj » 14. nov 2013, 13:29

super, ser godt ud, Vil jeg lige prøve af her senere :)

Tak for det ;)

Besvar