/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Åbne flere databaser
Fra : Jimmy


Dato : 19-09-03 16:56

Hej

Jeg skal tilgå to databaser på forskellige servere.
Jeg åbner den ene DB som nedenfor:

------
$Link = mysql_connect("host", "user", "pass") or die("Could not connect");
mysql_select_db("db") or die("Could not select database");

while
{
# lav SELECT i anden DB på anden server
}

------


Men åbner jeg den anden på samme måde går det jo galt...

Hvad gør jeg så?

mvh
Jimmy





 
 
Tonni Aagesen (19-09-2003)
Kommentar
Fra : Tonni Aagesen


Dato : 19-09-03 19:04

Jimmy wrote:

> Jeg skal tilgå to databaser på forskellige servere.
> Jeg åbner den ene DB som nedenfor:
>
> ------
> $Link = mysql_connect("host", "user", "pass") or die("Could not connect");
> mysql_select_db("db") or die("Could not select database");
>
> while
> {
> # lav SELECT i anden DB på anden server
> }
>
> ------

Læser manualen: http://dk.php.net/manual/en/function.mysql-select-db.php

Hint: mysql_select_db kan tage to params

Mvh
Tonni


Jimmy (19-09-2003)
Kommentar
Fra : Jimmy


Dato : 19-09-03 18:33


"Tonni Aagesen" <use.my@signature.please> wrote in message
news:bkf9do$eue$1@sunsite.dk...

> Hint: mysql_select_db kan tage to params


Jeg løber som sagt en tabel igennem på den ene server.
Inden i dette loop åbner jeg så den nye DB, laver mine SELECTs, lukker den
ikke igen, og vælger den gamle database igen, men så snart jeg kommer ud af
loopet er det DB-2 er valgt...

-----
$Link = mysql_connect("host", "user", "pass") or die("Could not connect");
mysql_select_db("db", $Link) or die("Could not select database");

while
{
# Aabn DB-2
$Link2 = mysql_connect("host", "user", "pass") or die("Could not
connect");
mysql_select_db("db", $Link2) or die("Could not select database");

# lav SELECT i anden DB på anden server


# Vaelg DB-1 igen
mysql_select_db("db", $Link) or die("Could not select database");
}


# Vaelg DB-1 igen
mysql_select_db("db", $Link) or die("Could not select database");


# SELECT i DB-1 fejler da, php tror DB-2 er valgt
-----


Jeg har forsøgt med ovenstående (hvor jeg vælger DB-1 to gange) men det
hjælper ikke.

Hvad er det jeg overser?

Mvh
Jimmy






Tonni Aagesen (19-09-2003)
Kommentar
Fra : Tonni Aagesen


Dato : 19-09-03 22:49

Jimmy wrote:

> Jeg løber som sagt en tabel igennem på den ene server.
> Inden i dette loop åbner jeg så den nye DB, laver mine SELECTs, lukker den
> ikke igen, og vælger den gamle database igen, men så snart jeg kommer ud af
> loopet er det DB-2 er valgt...

Det er da et meget mystisk setup, du har der. Hvorfor åbner du
forbindelser til MySQL inde i en while-loop?

De forbindelser du åbner med mysql_connect() er tilgængelig indtil hele
scriptet er eksekveret (med mindre du explicit kalder mysql_close()
funktionen).

Jeg kan ikke lige se, hvor det går galt i dit eksempel, men
mysql_query() tager også en "link identifier" som argument.

Mvh
Tonni


Jimmy (19-09-2003)
Kommentar
Fra : Jimmy


Dato : 19-09-03 22:22


"Tonni Aagesen" <use.my@signature.please> wrote in message
news:bkfmjf$cr1$1@sunsite.dk...
> Jimmy wrote:
>
> > Jeg løber som sagt en tabel igennem på den ene server.
> > Inden i dette loop åbner jeg så den nye DB, laver mine SELECTs, lukker
den
> > ikke igen, og vælger den gamle database igen, men så snart jeg kommer ud
af
> > loopet er det DB-2 er valgt...
>
> Det er da et meget mystisk setup, du har der. Hvorfor åbner du
> forbindelser til MySQL inde i en while-loop?

Ja jeg ved godt det lyder vanvittigt.
Det drejer sig om følgende:

Jeg får løbende lagt indgående SMS ind i en tabel.
Jeg løber den igennem og står der "JOHNSON [text]" skal denne SMS indsættes
i en database på en anden server.
På denne måde kan ham, der har den anden database, få sine brugere til at
sende ham nyheder, som kan vises på hans hjemmeside med det samme.


> Jeg kan ikke lige se, hvor det går galt i dit eksempel, men
> mysql_query() tager også en "link identifier" som argument.

Det var til dels det, der manglede.
Når jeg havde åbnet den ekstra forbindelse (og lukket den igen) troede php
stadig den skulle anvende den (ny lukkede) forbindelse til alle sine
SQL-kald.
Jeg løste problemet ved at angive link identifier på samtlige
mysql_query()'s...

Irriterende og for mig at se mærkeligt problem der ikke burde kunne opstå
når jeg
1 - Har valgt den gamle database igen
2 - Har lukket den nye

Anyway, det virker nu og jeg takker for gof hjælp.

mvh
Jimmy




Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste