Gå til innhold

Ikke globale variabler i funksjoner


Anbefalte innlegg

Skrevet

Har bestemt meg for å ta skrittet over til å bruke PEAR og lurer på en ting:

 

Når jeg har koblet meg til en database som dette:

require_once 'DB.php';
$db = DB::connect('mysql://root@localhost/database');

 

For å kjøre en spørring i en funksjon, blir jeg da nøtt til å bruke " global $db" i funksjonen hver BIDIGE gang jeg skal sende en spørring??

Videoannonse
Annonse
Skrevet

Eventuelt kan du sende den med funksjonen

 

$db = DB::connect('mysql://root@localhost/database');

function myquer($dblink){
 //spørringen din
}

//kjør funksjonen
myquery($db);

 

eventuelt kan du bruke $GLOBALS i funksjonen

 

function myquery(){
 // .....
 mysql_query($sql, $GLOBALS['db']);
 // .....
}

 

evntuelt slik:

 

function myquery(){
 $db = DB::connect('mysql://root@localhost/database');
}

 

da er ikke $db global lenger, men en del av scopen

 

på et eller annet vis må $db sendes inn i funksjonen du lager

Skrevet

hmm, ganske tungvindt ja..., men hva med classer da? må vel gjøre noe tilsvarende der også, kan vel bruke "$this->db" da, men er det en mulighet å bruke:

<?php
class test extends DB {

}

Men da vil jeg vel miste "$db", som er selve tilkoblingen...?

Skrevet

rett meg hvis jeg har feil.

 

Men hvis du bare har en tilkobling til DB så behøver du heler ikke å oppi noe til tilkobling når du bruker den. Da holder det å skrive

 

$resultat = mysql_query("select count(1) from xx");

 

dermed slipper du å dra den med deg alle plass..

 

virker fint her

Skrevet

joda, det er den måten jeg gjør det nå, men jeg skal bruke PEAR::DB og da kan jeg ikke bruke mysql_query(); dessuten har metoden din store problemer vis du har flere db-tilkoblinger

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...