Hvordan gør man når man bruger mysqli kode i PHP hvor man gerne vil have hjemmesiden til at blive vist ligemeget om mysql serveren er nede eller om databasen eller table ikke findes osv osv.
Jeg havde slukket for min mysql server også stod browseren bare og søgte og søgte.
Det ville være meget rart at det ikke gik ud over resten af hjemmeside hvis der er noget galt med mysql serveren eller mysqli koden.
Side skal virke selvom mysql server eller mysqli ikke gør.
- scootergrisen
- Moderator
- Indlæg:709
- Tilmeldt:21. jun 2012, 23:40
- Kontakt:
Re: Side skal virke selvom mysql server eller mysqli ikke gø
hmm... godt spørgsmål! Hvis en side er virkelig afhængig af en mysql server kan det jo være svært at vise siden 100% uden den...
Midt bedste bud ville være at tilføje en masse else statements, så ledes at hvis mysql serveren er nede, så vil din side og scripts kunne loades, men uden indhold bare databasen.
Men måske er der en mere fiks måde at gøre det på
Midt bedste bud ville være at tilføje en masse else statements, så ledes at hvis mysql serveren er nede, så vil din side og scripts kunne loades, men uden indhold bare databasen.
Men måske er der en mere fiks måde at gøre det på
- scootergrisen
- Moderator
- Indlæg:709
- Tilmeldt:21. jun 2012, 23:40
- Kontakt:
Re: Side skal virke selvom mysql server eller mysqli ikke gø
Dette virker ikke hvis mysql serveren er stoppet.
Når PHP kommer til koden stopper resten af siden i at blive vist.
Med denne kode kan man så gøre det så man får besked når serveren er nede i stedet for PHP bare stopper der. Men der er godt nok en del ekstra kode.
Kode: Vælg alt
$db = new mysqli($GLOBALS['setup']['mysql_server'], $GLOBALS['setup']['mysql_bruger'], $GLOBALS['setup']['mysql_kodeord'], $GLOBALS['setup']['mysql_database']);
Med denne kode kan man så gøre det så man får besked når serveren er nede i stedet for PHP bare stopper der. Men der er godt nok en del ekstra kode.
Kode: Vælg alt
['mysql_kodeord'], $GLOBALS['setup']['mysql_database']);
$mysqli = mysqli_init();
if (!$mysqli) {
echo 'mysqli_init failed';
}
if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
echo 'Setting MYSQLI_INIT_COMMAND failed';
}
if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 2)) {
echo 'Setting MYSQLI_OPT_CONNECT_TIMEOUT failed';
}
if (!$mysqli->real_connect($GLOBALS['setup']['mysql_server'], $GLOBALS['setup']['mysql_bruger'], $GLOBALS['setup']['mysql_kodeord'], $GLOBALS['setup']['mysql_database'])) {
echo 'Connect Error (' . mysqli_connect_errno() . ' ' . mysqli_connect_error();
}
echo 'Success... ' . $mysqli->host_info . "\n";
$mysqli->close();
Re: Side skal virke selvom mysql server eller mysqli ikke gø
hmm...Det var umiddelbart sådan at jeg ville gøre det
Men hvor ofte er det lige at ens sql server går ned? Hvis man har en ordentlig udbyder, så burde man ikke behøve bruge tid på sådanne foranstaltninger her
Tror faktisk selv de største sites går helt ned hvis deres sql server ikke virker - alle funktioner indhold osv vil alligevel være væk, så det ville ikke give nogen mening at have besøgende på sit site alligevel
Men hvor ofte er det lige at ens sql server går ned? Hvis man har en ordentlig udbyder, så burde man ikke behøve bruge tid på sådanne foranstaltninger her
Tror faktisk selv de største sites går helt ned hvis deres sql server ikke virker - alle funktioner indhold osv vil alligevel være væk, så det ville ikke give nogen mening at have besøgende på sit site alligevel
- scootergrisen
- Moderator
- Indlæg:709
- Tilmeldt:21. jun 2012, 23:40
- Kontakt:
Re: Side skal virke selvom mysql server eller mysqli ikke gø
Jeg bruger ikke mysql til at vise min hjemmeside det kun forummet der ikke ville virke uden.
Også det ratingsystem jeg arbejder på nu.
Men det også meget rart at kunne få en fejlbesked i stedet for at siden bare stopper der eller er blank.
Ellers så sidder man der og aner ikke hvorfor det ikke virker.
Også det ratingsystem jeg arbejder på nu.
Men det også meget rart at kunne få en fejlbesked i stedet for at siden bare stopper der eller er blank.
Ellers så sidder man der og aner ikke hvorfor det ikke virker.
- Daniel
- Admin
- Indlæg:625
- Tilmeldt:14. jun 2011, 09:27
- Geografisk sted:Danmark, Fyn, Nørre Aaby
- Kontakt:
Re: Side skal virke selvom mysql server eller mysqli ikke gø
Du kan eventuelt sætte op med fejlbeskeder i nogle if statements, hvor den så bruger die('Fejlbesked'), og slår error beskeder fra.
Så viser den bare en tom hvis side med teksten: Kunne ikke forbinde til databasen!
På den måde kan folk godt nok ikke bruge resten af siden, men det er til gengæld meget nemt at fejlsøge, især hvis man laver et lille dokument til sig selv med hvor de forskellige fejlbeskeder hører til, får man en fejl kan man søge det op i det dokument, og så ved man præcis at det er i fx mysqli.connect.php
Tror ikke det er muligt at få resten af siden til at virke hvis man bruger MySQL på den, og serveren går ned, men er selvfølgelig heller ikke ekspert.
Kode: Vælg alt
error_reporting(0);
$db = new mysqli($GLOBALS['setup']['mysql_server'], $GLOBALS['setup']['mysql_bruger'], $GLOBALS['setup']['mysql_kodeord'], $GLOBALS['setup']['mysql_database']);
if(!$db) {
die('Kunne ikke forbinde til databasen!')
}
På den måde kan folk godt nok ikke bruge resten af siden, men det er til gengæld meget nemt at fejlsøge, især hvis man laver et lille dokument til sig selv med hvor de forskellige fejlbeskeder hører til, får man en fejl kan man søge det op i det dokument, og så ved man præcis at det er i fx mysqli.connect.php
Tror ikke det er muligt at få resten af siden til at virke hvis man bruger MySQL på den, og serveren går ned, men er selvfølgelig heller ikke ekspert.
- scootergrisen
- Moderator
- Indlæg:709
- Tilmeldt:21. jun 2012, 23:40
- Kontakt:
Re: Side skal virke selvom mysql server eller mysqli ikke gø
Meningen var at folk netop godt skulle kunne bruge resten af hjemmesiden selvom mysql servern var nede.
Jeg må lave noget med real_connect.
Jeg må lave noget med real_connect.