Avatar billede horizon Nybegynder
14. februar 2006 - 22:04 Der er 15 kommentarer og
1 løsning

mysql_connect/select_db fejlmeddelelse

Sider her og bakser med et lille (sikkert nemt) problem. Jeg sidder her med en MySql fil som skal ordne alt med mysql ol.

Koden ser således ud:
---
<?php

if(!defined('NF'))
    die('Du kan ikke gå direkte til filen');

//Forbind til databasen
function Forbind(){

    global $MySql;
   
    if(!mysql_connect($MySql[Server], $MySql[Brugernavn], $MySql[Adgangskode]))
        die('<p class="Fejlmeddelelse">Forbindelsesfejl: <b>'.mysql_error().'</b></p>');
   
    elseif(!mysql_select_db($MySql[Database]))
        die('<p class="Fejlmeddelelse">Fejl ved valg af database: <b>'.mysql_error().'</b></p>');
   
}

?>
---
For at teste fejlmeddelelserne har jeg bevidst angivet forkerte oplysninger i $MySql[] tingene, men istedet for at vise fejlmeddelelsen som jeg gerne vil have den til, viser den det i stil med dette:
---
Warning: mysql_connect(): Unknown MySQL server host 'looocalhost' (1) in blah/blah/blah/blah/MySql.php on line 11


Forbindelsesfejl: Unknown MySQL server host 'looocalhost' (1)
---
Hvordan er det nu jeg fjerner den første fejlmeddelelse så det kun er min brugerdefinerede fejlmeddelelse der kommer frem? er helt blank nu :P
Avatar billede nielle Nybegynder
14. februar 2006 - 22:09 #1
Prøv sådan her i stedet:

mysql_connect($MySql["Server"], $MySql["Brugernavn"], $MySql["Adgangskode"])) or die('<p class="Fejlmeddelelse">Forbindelsesfejl: <b>' . mysql_error() . '</b></p>');
Avatar billede nielle Nybegynder
14. februar 2006 - 22:11 #2
Altså:

<?php

if (!defined('NF'))
    die('Du kan ikke gå direkte til filen');

//Forbind til databasen
function Forbind()
{
    global $MySql;
   
    mysql_connect($MySql["Server"], $MySql["Brugernavn"], $MySql["Adgangskode"])) or die('<p class="Fejlmeddelelse">Forbindelsesfejl: <b>' . mysql_error() . '</b></p>');

    mysql_select_db($MySql["Database"]) or die('<p class="Fejlmeddelelse">Fejl ved valg af database: <b>' . mysql_error() . '</b></p>');   
}
?>
Avatar billede horizon Nybegynder
14. februar 2006 - 22:13 #3
samme fejlmeddelelse. prøvede også noget i stil med

if(!blahblahblah)
MySqlFejl("Forbindelsesfejl: ".mysql_error());

og kaldte den i en funktion, men den siger det samme :S

først i toppen og så igen min egen
Avatar billede horizon Nybegynder
14. februar 2006 - 22:14 #4
Ha! sørme så! nu virker det (måske min server der er lang tid om at opdatere efter man smider filer op på den...

bukker og takker, klask et svar i nakken på mig ;)
Avatar billede horizon Nybegynder
14. februar 2006 - 22:15 #5
rettelse igen, mig der var for hurtig, får samme fejl, så bare fejlen var anderledes og kortere, men der var en ) for meget et sted :(
Avatar billede nielle Nybegynder
14. februar 2006 - 22:20 #6
<?php
if (!defined('NF'))
    die('Du kan ikke gå direkte til filen');

//Forbind til databasen
function Forbind()
{
    global $MySql;
   
    mysql_connect($MySql["Server"], $MySql["Brugernavn"], $MySql["Adgangskode"]) or die('<p class="Fejlmeddelelse">Forbindelsesfejl: <b>' . mysql_error() . '</b></p>');

    mysql_select_db($MySql["Database"]) or die('<p class="Fejlmeddelelse">Fejl ved valg af database: <b>' . mysql_error() . '</b></p>');
}
?>
Avatar billede horizon Nybegynder
14. februar 2006 - 22:22 #7
Stadig samme fejl (se fejlen på http://netfora.netlosninger.dk)

Kan det være fordi man ikke har lov til at fjerne fejlen fra connect og select_db?
Avatar billede nielle Nybegynder
14. februar 2006 - 22:29 #8
Vi har jo ikke fjernet fejlen, den ligger stadig i "... or die()" delen.

Hmm, det er lidt mystisk, det burde fungere med den kode.
Avatar billede nielle Nybegynder
14. februar 2006 - 22:31 #9
Jamen, det fungere sgi da også. Den skriver jo netop det den skal:

... or die('<p class="Fejlmeddelelse">Forbindelsesfejl: <b>' . mysql_error() . '</b></p>');
Avatar billede nielle Nybegynder
14. februar 2006 - 22:31 #10
Forbindelsesfejl: Unknown MySQL server host 'loocalhost' (1)
Avatar billede horizon Nybegynder
14. februar 2006 - 22:33 #11
det er mig der lige legede lidt, tror jeg fandt ud af det... lige et øjeblik
Avatar billede horizon Nybegynder
14. februar 2006 - 22:38 #12
Søgte i koderne til SMF forumet og fandt ud af at der skal et @ foran (hvorfor var det jeg ikke søgte efter det til at starte med?)

Så slutresultatet ser sådanher ud:

<?php

if (!defined('NF'))
    die('Du kan ikke gå direkte til filen');

//Forbind til databasen
function Forbind()
{
    global $MySql;
   
    if(!@mysql_connect($MySql["Server"], $MySql["Brugernavn"], $MySql["Adgangskode"]))
        die('<p class="Fejlmeddelelse">Forbindelsesfejl: <b>' . mysql_error() . '</b></p>');

    elseif(!@mysql_select_db($MySql["Database"]))
        die('<p class="Fejlmeddelelse">Fejl ved valg af database: <b>' . mysql_error() . '</b></p>');
}
?>

og har testet ved at trække værdier ud af databasen, virker fint ;)

ellers tak for hjælpen nielle
Avatar billede nielle Nybegynder
14. februar 2006 - 22:43 #13
Der er vist ikke noget krav om at der skal en @ foran.

Men min kode i 14/02-2006 22:20:05 burde virke. Ellere retter sagt: Den virker. :^)
Avatar billede horizon Nybegynder
14. februar 2006 - 22:46 #14
bare ikke hos mig... af en eller anden mystisk grund, men nok om det... fik det til ;)
Avatar billede nielle Nybegynder
14. februar 2006 - 22:52 #15
Den fejlbesked som du fik - 14/02-2006 22:31:39 - er nu da ellers lige præcis den som din kode - 14/02-2006 22:31:17 - skal udskrive.
Avatar billede horizon Nybegynder
14. februar 2006 - 22:54 #16
Det var fordi jeg lige forinden havde rettet den til et @, jeg var igang med at se om den kunne skabe forbindelse til databasen med @ foran, og det kunne den.
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

SAP-medarbejder til Roller & Autorisationer i Forsvarets Cyberdivision

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen