Avatar billede dgivoni Nybegynder
11. maj 2001 - 21:13 Der er 10 kommentarer og
1 løsning

fejlhåndtering ved oprettelse af db-forbindelse

Jeg har problemer med at \'fange\' fejlen, når min databaseforbindelse ikke kan oprettes.
Det er ikke et problem at oprette selve forbindelsen til DB, men jeg ville også gerne fange fejlen, hvis forbindelsen en dag glipper.
Så jeg har lavet en errorhandler-funktion til at håndtere fejludskrivningen, og jeg kalder den ved at tjekke om db-forbindelsen blev oprettet ok. Det ser sådan her ud:

if (!($c = mysql_connect(\'mysql.givoni2.com\',\'givoni\',\'lund5550\'))) {
    dberrorhandler(mysql_errno().\": \".mysql_error(), $c, $SCRIPT_FILENAME);
    }

function dberrorhandler($error, $sqlstmt, $filename) {

    echo \"<br><font color=\'red\'>Der er opstået en fejl:<br>\";
    echo \"<b>\".$error.\"</b><br>\";
    echo \"Fejlen opstod her: \".$sqlstmt.\"<br>\";
    echo \"Filnavn: \".$filename.\"</font><br>\";
    exit();
}

Fejlen er fremprovokeret ved at jeg har skrevet givoni2 i stedet for givoni. Det giver flg. resultat:

Warning: MySQL Connection Failed: Unknown MySQL Server Host \'mysql.givoni2.com\' (2) in /usr/local/plesk/apache/vhosts/mysql.givoni.com/httpdocs/punkt1/dbconnection.php on line 3

Der er opstået en fejl:
:
Fejlen opstod her:
Filnavn: /usr/local/plesk/apache/vhosts/mysql.givoni.com/httpdocs/punkt1/forestillingsoversigt.php

Som det ses, er både mysql_errorno() og mysql_error() tomme?
Hvad skyldes det?
Jeg skal måske også lige bemærke at ved fejlhåndtering af sql-kald med samme funktion, er der ingen problemer.

mvh,

David
Avatar billede erikjacobsen Ekspert
11. maj 2001 - 21:19 #1
ved mysql_connect er der jo ingen SQL-fejl :)

Fjern warning med @mysql_connect

(nej jeg skal ikke have point...)
Avatar billede mortenfn Nybegynder
11. maj 2001 - 21:19 #2
$conn = mysql_query(\"SELECT * FROM ingentable\");
echo mysql_errno().\": \".mysql_error().\"<BR>\";
Avatar billede mortenfn Nybegynder
11. maj 2001 - 21:20 #3
$conn = mysql_query(\"SELECT * FROM ingentable\");
if(mysql_errno()==\"1146\")echo \"tabellen mangler\";
else echo \"tabellen er i orden\";
Avatar billede erikjacobsen Ekspert
11. maj 2001 - 21:20 #4
Det tror jeg han har fattet, mortenfn :)
Avatar billede mortenfn Nybegynder
11. maj 2001 - 21:22 #5
ja det tror jeg faktisk også
Avatar billede dgivoni Nybegynder
11. maj 2001 - 21:24 #6
Ok, Erik, men hvis jeg fjerner warning, skal jeg så bare selv konstruere en fejlmeddelelse, hvis connection bliver false? Er der ikke noget som systemet melder tilbage, med et nummer etc.?
Avatar billede erikjacobsen Ekspert
11. maj 2001 - 21:27 #7
Nej, der er ikke noget nummer på den her. Der er jo ingen forbindelse, og det
kan du umiddelbart se.
Avatar billede erikjacobsen Ekspert
11. maj 2001 - 21:28 #8
hvilket betyder du selv skal: \"Der er desværre i dag et mindre teknisk....\" eller
hvad du finder på :)
Avatar billede dgivoni Nybegynder
11. maj 2001 - 21:32 #9
mange tak, Erik. Så er der jo faktisk ingen grund til at bruge den errorhandler til at håndtere fejl ved db-forbindelsen. Forbindelsen skal jo også kun oprettes på én måde, så jeg vinder vel egentlig ikke noget ved at kombinere den med sql-fejlhåndteringen.
Avatar billede erikjacobsen Ekspert
11. maj 2001 - 21:36 #10
nemlig
Avatar billede dgivoni Nybegynder
11. maj 2001 - 21:44 #11
nå, eftersom Erik ikke ville tage pointene, må jeg hellere indkassere dem igen og lukke spørgsmålet.
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
Computerworld tilbyder specialiserede kurser i database-management

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