Avatar billede lone_a_p Praktikant
28. februar 2007 - 18:09 Der er 20 kommentarer og
1 løsning

Fejl med funktionen mysql_connect

mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Unknown MySQL Server Host 'xxx.xxx.dk'

Jeg får ganske ofte ovenstående fejlbesked tilsendt, som mine brugere støder ind i.

Er det noget, I har problemer med, eller hvordan kan jeg undgå, at denne fejl kommer rimelig ofte (ofte er for mig 2-10 gange hver dag - tror jeg, uden jeg har undersøgt det præcis).

Mvh Lone
Avatar billede mcardle Nybegynder
28. februar 2007 - 18:32 #1
Har vidst hørt om den. Har du din egen server? Har du prøvet at opdatere din MySQL-pakke?
Avatar billede jakobdo Ekspert
28. februar 2007 - 19:12 #2
Er problemet at fejlen opstår eller at fejlen bliver vist til dine brugere?
Du kan jo undertrykke fejlen med @mysql_connect();
Avatar billede lone_a_p Praktikant
28. februar 2007 - 20:07 #3
Jeg har ikke min egen server, men er lige blevet skiftet over til nogle nyere servere, så jeg tror det er ok - det er MySQL 4.0.21

Problemet er, at fejlen opstår, for mine brugere er meget afhængige af dataene i databasen - det er det hele mit site bygger over :)
Avatar billede mcardle Nybegynder
28. februar 2007 - 20:11 #4
Mener det er blevet rettet i MySQL 5.
Avatar billede mcardle Nybegynder
28. februar 2007 - 20:11 #5
Hvad er din kode der connecter?
Avatar billede lone_a_p Praktikant
28. februar 2007 - 20:20 #6
$conn = mysql_connect(HOST, USER, PASS) or die (user_error("PROBLEMER MED DATABASEN: ".mysql_error(), E_USER_ERROR));

$select = mysql_select_db(NAME,$conn) or die (user_error("PROBLEMER MED DATABASEN: ".mysql_error(), E_USER_ERROR));
Avatar billede lone_a_p Praktikant
28. februar 2007 - 20:24 #7
Nu rullede fejlen sørme lige ind igen :(
Avatar billede jakobdo Ekspert
28. februar 2007 - 20:39 #8
Hvis mysql-serveren er ustabil, så kan du som sådan ikke gøre noget ved det.
Så må du have fat i din udbyder og få dem til at flytte dig til en mere stabil server.
Avatar billede lone_a_p Praktikant
28. februar 2007 - 21:25 #9
okay, det kan ikke have noget at gøre med at jeg connecter for mange gange? for det hele bygger jo på databasen og der er mindst én connection hver gang
Avatar billede jakobdo Ekspert
28. februar 2007 - 21:30 #10
Jeg ville nok lægge min mysql_connect i en fil, og f.eks. kalde den: connect.php
Og så includere den med koden:

require_once('connect.php');
Så sikre du dig at filen skal være der, men kun includeres en gang.
Avatar billede lone_a_p Praktikant
28. februar 2007 - 21:46 #11
hvad så når jeg har nogle functions, som også connecter? (det er mit største problem)

skal jeg sige noget som $GLOBALS["conn"] og hente den i min connectfunktion? sådan havde jeg tænkt det, men ville høre her på eksperten først
Avatar billede lone_a_p Praktikant
28. februar 2007 - 21:47 #12
og så bare noget i retning af

hvis $GLOBALS["conn"] exists
så brug den oprettede connection
ellers opret en connection og smid den i $GLOBALS["conn"]
Avatar billede jakobdo Ekspert
28. februar 2007 - 22:07 #13
Hvis du har brugt require_once i toppen af koden, så er der allerede forbundet til serveren og du har ikke nøde at forbinde igen.
Avatar billede lone_a_p Praktikant
28. februar 2007 - 22:15 #14
dvs. selv om man connecter på en anden måde men til samme database, så benytter den den samme connect? men mine funktioner læser ikke $conn, hvis jeg ikke connecter inde i funktionen
Avatar billede jakobdo Ekspert
28. februar 2007 - 22:20 #15
Det kommer selvfølgelig lidt an på hvordan dine funktioner er strikket sammen.
Prøv at vis en af dem herinde.
Avatar billede lone_a_p Praktikant
28. februar 2007 - 22:25 #16
function connect_link(){
  $conn = mysql_pconnect(HOST, USER, PASS) or die (user_error("PROBLEMER MED DATABASEN: ".mysql_error(), E_USER_ERROR));
  $select = mysql_select_db(NAME,$conn) or die (user_error("PROBLEMER MED DATABASEN: ".mysql_error(), E_USER_ERROR));
  return $conn;
}

function brugere_online(){
  $conn = connect_link();
  $sql = "SELECT ...."
  $result = mysql_query($sql, $conn) or die (user_error("PROBLEMER MED DATABASEN: ".mysql_error()." SQL: ".$sql, E_USER_ERROR));
  return mysql_num_rows($result);
}

Hvordan kan jeg ellers sætte det op? connect_link kaldes af en del funktioner
Avatar billede jakobdo Ekspert
01. marts 2007 - 07:40 #17
Det kan jeg godt se ja!
Jeg tør ikke begynde at anbefale noget! :o(
Avatar billede lone_a_p Praktikant
01. marts 2007 - 12:51 #18
ok, jeg finder ud af det :-)

det må vel være et eller andet med at komme den i en global variabel
Avatar billede mcardle Nybegynder
01. marts 2007 - 16:40 #19
Det er muligt at det er fordi du bruger mysql_pconnect(). Når du bruger den, så kan du ikke lukke din forbindelse med mysql_close(), så hvis du connecter med mysql_connect() senere, kan der ske ting der.

Ved ikke om det er det, men det er et sidste bud herfra.
Avatar billede lone_a_p Praktikant
01. marts 2007 - 22:57 #20
oh ja, det kan jeg egentlig godt se - kan ikke huske, hvorfor jeg ændrede det i første omgang, men prøver i alfald lige uden p igen :)
Avatar billede jakobdo Ekspert
02. marts 2007 - 18:37 #21
pconnect kan være problemet ja.
Prøv at læs lidt mere her: http://www.php.net/mysql_pconnect
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