Avatar billede xenocypraz Nybegynder
07. marts 2006 - 09:59 Der er 10 kommentarer og
1 løsning

Connecte til flere databaser samtidligt

Hejsa

Jeg er ved at lave noget php, og jeg skal være forbundet til 2 mssql databaser samtidligt, kan det lade sig gøre ?

Mvh

Nikolaj
Avatar billede erikjacobsen Ekspert
07. marts 2006 - 10:05 #1
$con1 = mssql_connect( .... )
$con2 = mssql_connect( .... )

$res1 = mssql_query("SELECT ...",$conn1);
$res2 = mssql_query("SELECT ...",$conn2);
Avatar billede xenocypraz Nybegynder
07. marts 2006 - 12:19 #2
$dbConn = mssql_connect($dbHost,$dbUser,$dbPass) or die("Database failed to respond.");
mssql_select_db("FBI_Dev", $dbConn) or die("Database unavailable");



$dbConn2 = mssql_connect($dbHost,$dbUser,$dbPass) or die("Database failed to respond.");
mssql_select_db("FBI", $dbConn2) or die("Database unavailable");

Sådan ser det ud lige nu, og det virker ihvertfald ikke.
Avatar billede erikjacobsen Ekspert
07. marts 2006 - 12:38 #3
"virker ihvertfald ikke"  - og hvordan ytrer det sig så?
Avatar billede xenocypraz Nybegynder
07. marts 2006 - 12:41 #4
Oki, hvis jeg sætter det ind som det står i overnævnte indlæg, vil alle de felter der normalt bliver fyldt fra databasen, være tomme, det er dropdown bokse osv. De fungere fint, hvis man vender det om. altså:

$dbConn2 = mssql_connect($dbHost,$dbUser,$dbPass) or die("Database failed to respond.");
mssql_select_db("FBI", $dbConn2) or die("Database unavailable");


$dbConn = mssql_connect($dbHost,$dbUser,$dbPass) or die("Database failed to respond.");
mssql_select_db("fbi", $dbConn) or die("Database unavailable");

så jeg kan ikke helt regne ud hvorfor...
Avatar billede erikjacobsen Ekspert
07. marts 2006 - 12:43 #5
Det var da lidt bedre ;) Men hvad med så at vise den kode du bruger?
Avatar billede xenocypraz Nybegynder
07. marts 2006 - 13:02 #6
jamen jeg bruger nogle forskellige funktioner til det...

det hele kører gennem

function Query($query)
  {

    global $dbConn;

    if($dbConn)
    {
      mssql_query("SET ANSI_WARNINGS On", $dbConn);

      return @mssql_query($query, $dbConn);
    }
    else
    {
      return FALSE;
    }
  }

så jeg kan ikke se hvorfor at der er en forskel på måden jeg indlæser de forskellige connections til databasen på, da connection navnet bliver givet med i sql kaldet....
Avatar billede erikjacobsen Ekspert
07. marts 2006 - 13:30 #7
Når du har connectionnavnet med i mssql_query så bør det netop virke.

Start med at finde ud af om der er noget galt - fjern @-et foran kaldet til mssql_query, så du får noget at vide, hvis den vil sige noget. Test yderligere om alle dine mssql_query'er lykkes, og skriv fejlen med mssql_get_last_message(), selv om det ikke altid giver noget særligt.

Men du forbinder dig til samme databaseserver, og i andet eksempel du har, også til samme database. Og i din Query-funktion bruger du kun den ene. Jeg undrer mig blot.
Avatar billede xenocypraz Nybegynder
07. marts 2006 - 15:14 #8
Så vil jeg da prøve mig frem, jeg bruger både den query funktion fra før og så denne

  function Query2FBI($query)
  {

    global $dbConn2;

    if($dbConn2)
    {
      mssql_query("SET ANSI_WARNINGS On", $dbConn2);

      return @mssql_query($query, $dbConn2);
    }
    else
    {
      return FALSE;
    }
  }

men problemet er som jeg har skrevet længere oppe, at hvis jeg instantiere connection2 til sidst, så kan mit program ikke få fat i de data den normalt kan få fat i, og det undrer mig ? :-)
Avatar billede xenocypraz Nybegynder
21. marts 2006 - 15:39 #9
Mit problem løste sig selv, da jeg endte med kun at skulle connecte til en db, lig et svar, så for du lidt point.
Avatar billede erikjacobsen Ekspert
21. marts 2006 - 15:42 #10
Jeg samler slet ikke på point, tak.
Avatar billede xenocypraz Nybegynder
21. marts 2006 - 15:45 #11
Så lukker jeg, tak for hjælp
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