/ 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
Ændre db-forbindelse, når filen lægges i e~
Fra : Jakob


Dato : 01-11-05 11:05

Jeg er nybegynder i php og har lavet noget kode, trækker data ud arf
en tabel. Det virker udmærket, når min fil ("hentdata.php") ligger i
roden af localhost. Men nu har jeg så lagt filen ind i en mappe under
localhost, og den mappe hedder "web", og så virker forbindelsen til
MySql ikke mere. Den gamle kode ser sådan ud:

<?php
$linkDB = mysql_connect("localhost","root","");
mysql_select_db("jmtestdb",$linkDB);

$hentdata = mysql_query("Select * from kunder",$linkDB);
while($hej = mysql_fetch_assoc($hentdata)){
   echo "Navn: ".$hej["fornavn"]."<br>";
   echo "Efternavn: ".$hej["efternavn"]."<br>";
}
?>

Hvad skal jeg ændre, for at forbindelsen virker, når koden ligger i
en mappe kaldet "web"?

v.h.
Jakob

(php-nybegynder)


 
 
Jesper H (01-11-2005)
Kommentar
Fra : Jesper H


Dato : 01-11-05 15:08

Hej

Øhh, den gamle kode burde ikke ændre sig, selvom du lægger koden i
en ny mappe, så længe det er en mappe der er under webserveren. Er
det fordi du ændrer linien:
$linkDB = mysql_connect("localhost","root","");
til
$linkDB = mysql_connect("localhost/web","root","");
???
For dette vil ikke være rigtigt. "localhost" skal stadig bare være
"localhost", da dette er net-adressen til den server, hvorpå
mySQL-databasen ligger. Det navn, der står i mysql_connect()
kommandoen har ikke noget med din mappe "localhost" at gøre, men
net-navnet "localhost" som altid henviser til din egen computer.

Mvh
Jesper


Jakob Munck (01-11-2005)
Kommentar
Fra : Jakob Munck


Dato : 01-11-05 15:40

Tak for det. Jeg troede at man skulle ændre adressen, det skal man ikke. Til
gengæld forstår jeg ikke, hvordan den samme henvisning til databasen kan
bruges,. uanset hvor filen ligger (indenfor localhost). Det synes jeg er
mærkeligt...?

v.h.
Jakob



Jesper H (01-11-2005)
Kommentar
Fra : Jesper H


Dato : 01-11-05 16:49

Det er fordi din webserver og din mySQL-server er (groft sagt) to
forskellige programmer/processer på din computer.

Det svarer lidt til, hvis du skal ringe til et telefonnummer - dette
telefonnummer vil ikke ændre sig, selvom du selv får ny telefon eller
skifter nummer

Mvh
Jesper


Jakob Munck (01-11-2005)
Kommentar
Fra : Jakob Munck


Dato : 01-11-05 18:58

>Det svarer lidt til, hvis du skal ringe til et telefonnummer - dette
>telefonnummer vil ikke ændre sig, selvom du selv får ny telefon eller
>skifter nummer

Jeg forstår det stadig ikke. Når man arbejder med asp (hvor jeg kommer fra),
så skal det altid angives i koden hvor man connecter præcis, hvor databasen
ligger, ellers kan man ikke kontakte den. Her i php er det åbenbart ikke
nødvendigt at skrive i koden, hvor databasen befinder sig. Men hvordan
finder koden så ud af det, for den kan skal jo vide det helt præcis, når den
skal hente og gemme i denne database??

v.h.
Jakob



Jacob Atzen (01-11-2005)
Kommentar
Fra : Jacob Atzen


Dato : 01-11-05 19:51

On 2005-11-01, Jakob Munck <jm2_fjern_dette@webspeed.dk> wrote:
> Jeg forstår det stadig ikke. Når man arbejder med asp (hvor jeg kommer
> fra), så skal det altid angives i koden hvor man connecter præcis,
> hvor databasen ligger, ellers kan man ikke kontakte den. Her i php er
> det åbenbart ikke nødvendigt at skrive i koden, hvor databasen
> befinder sig. Men hvordan finder koden så ud af det, for den kan skal
> jo vide det helt præcis, når den skal hente og gemme i denne
> database??

Jeg går ud fra du tidligere har arbejdet med en database, der lå i en
fil (f.eks. en Access DB).

MySQL serveren er et selvstændigt program, som din PHP applikation
kommunikerer med, typisk gennem netværket[1]. Dvs. at din databasedriver
i PHP ikke åbner en fil, men en netværksforbindelse til din
databaseserver. Det er således hostnavnet på din databaseserver
("localhost") du angiver, når du forbinder til en MySQL database og ikke
en sti til en fil.

Det er således en præcis angivelse af, hvor din database ligger. Hvis
den lå på en anden maskine skulle du angive eksempelvis
"mysqlserver.example.com" istedet for localhost.

Du kan godt bruge Access databaser fra PHP, eller SQLite database, som
ligeledes ligger i en fil. MySQL er bare det, som er mest udbredt.

[1]: Der er også andre måder at snakke med MySQL på, men de er ikke så
interessante så længe du bare lærer om PHP og MySQL.

--
Med venlig hilsen
- Jacob Atzen

Knud Winckelmann (01-11-2005)
Kommentar
Fra : Knud Winckelmann


Dato : 01-11-05 20:15

Således skrev Jakob Munck den Tue, 1 Nov 2005 18:58:05 +0100:

>Når man arbejder med asp (hvor jeg kommer fra),
>så skal det altid angives i koden hvor man connecter præcis, hvor databasen
>ligger, ellers kan man ikke kontakte den.

Bruger du Access som backend? Der skal den præcise sti angives.

Bruger du f.eks en MS SQL-server, angiver du også kun servernavn og
database.

> Her i php er det åbenbart ikke
>nødvendigt at skrive i koden, hvor databasen befinder sig.
>Men hvordan
>finder koden så ud af det, for den kan skal jo vide det helt præcis, når den
>skal hente og gemme i denne database??

Den "ligger" ikke et bestemt sted, du forbinder dig som sagt til
serveren, som lytter på en port efter forbindelser og fortæller hviken
database du vil bruge.

Så klarer database-serveren resten.

Knud
--
If there is no God, who pops up the next Kleenex?
-- Art Hoppe

Jakob Munck (01-11-2005)
Kommentar
Fra : Jakob Munck


Dato : 01-11-05 21:00

tak til jer alle for svarene. Jeg er blevet klogere.

v.h.
Jakob



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste