Avatar billede solari Nybegynder
21. januar 2005 - 00:28 Der er 3 kommentarer

håndtering af flere databaser i klasser

Hej

Mit problem er:
På min webside har jeg lavet en oprettelsen til databasenX i starten af min php fil. alle Query's bliver kørt også lukker jeg databaseX til allersidst i min php fil. Det virker fint og jeg skal kun forbinde og lukke engang til databasenX.
Så kom problem, da jeg skulle til at stille Query's til databaseY, så er den løsning ikke særlig smart.

Løsningen ?:
Min løsning vil være at lave en class der kan håndtere Databaserne men jeg tænkte er det muligt at lave et objekt for hver databse. Hvor objektet forbinder engang til dens database man kan derefter smide Query's ind i den og tilsidst lukke databasen.

Jeg kunne forstille mig det vil ligne dette her:
$databaseX = new Database($hostX, $userX, $passX, $dbX);
$databaseY = new Database($hostY, $userY, $passY, $dbY);

$databaseX->conn();
$databaseY->conn();

$result = $databaseX->query($sql);

$result = $databaseX->query($sql);

$result = $databaseY->query($sql);

$result = $databaseX->query($sql);

$result = $databaseY->query($sql);

osv...

$databaseX->close();
$databaseY->close();

Håber at der har en klasse der kan det jeg forstiller mig. men andre smarte løsninger er også velkommen. løsningen skal bare kunne forbinde til flere databaser og lave query's til dem.
Avatar billede erikjacobsen Ekspert
21. januar 2005 - 00:32 #1
Det kan du gøre på den måde. Du skal blot i din klasse gemme din connection

  $this->connection=mysql_connect(....);

og så bruge den i de queries du har i klassen:

  mysql_query($sql,$this->connection);

Ok - kun en skitse, men det er den rigtige vej ;)
Avatar billede solari Nybegynder
21. januar 2005 - 01:03 #2
Hej erikjacobsen

Okay man kan god.tVar lidt bange for at man hele tiden skulle lukke og åbne forbindelsen til databaserne.

Jeg prøver lige og se om jeg kan få det til at virke
Avatar billede solari Nybegynder
21. januar 2005 - 01:51 #3
erikjacobsen det virker jo perfekt jeg siger mange tak :-)

hvis du ligger et svar er der point til dig

Til andre der læser denne post så vil classen se sådan ud her:
class Database
{
  var $connection;

  function Database($host, $user, $pass, $db)
  {
      $this->connection = mysql_connect($host, $user, $pass) or die("Kunne ikke
      forbinde : " . mysql_error());
      mysql_select_db($db) or die("kunne ikke vælge databasen");
  }
  function Query($SQL)
  {
      return mysql_query($SQL, $this->connection) or die("Forespørgslen lykkedes
      ikke : " . mysql_error());
  }
  function Close()
  {
      mysql_close($this->connection);
  }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester