webForumDet fria alternativet

Inte visa felmeddelanden från PHP

PHP

12 svar · 755 visningar · startad av Trankan

Medlem sedan okt. 2006129 inlägg
Frågan#1

Hej!

Det dyker bara upp fler och fler frågor hela tiden. ;) Koden nedan behöver jag säkerligen inte ens förklara, så jag går direkt på problemet. Jag vill bara att min egna error ska skrivas ut, men PHP skriver ju också ut att något inte fungerar, vilket inte ser så vackert ut på sidan. Vet att problemet går att lösa genom att skriva error_reporting(0) så att inga felmeddelanden alls visas, men jag tänkte höra med er om det finns någon annan metod?

$query = "SELECT * FROM tabellen";
$result = mysql_query($query);

if($result) {
echo "Informationen hämtades utan problem.";
}

else {
echo "Informationen kunde inte hämtas korrekt.";
}
Medlem sedan nov. 20041 740 inlägg
#2
$result = @mysql_query($query);

eller kika på error_reporting i php-manualen.

Medlem sedan mars 20041 505 inlägg
#3

Fånga upp exceptions med try/catch, såhär:

try {
   $query = "SELECT * FROM tabellen";
   $result = mysql_query($query);
   echo "Informationen hämtades utan problem.";
} catch (Exception $e) {
   echo "Informationen kunde inte hämtas korrekt.";
}
Medlem sedan okt. 2006129 inlägg
#4

Tack båda två för svaren, men tyvärr verkar inget utav förslagen fungera. Det första ger ingen skillnad alls, och kör jag det andra får jag felmeddelandet Parse error: syntax error, unexpected '{' för den rad där scriptet börjar.

Medlem sedan juni 20006 031 inlägg
#5

Jag skulle använda mig dels av @ och sen en die.

 $query = "SELECT * FROM tabellen";
$result = @mysql_query($query) or die("Informationen kunde inte hämtas korrekt.");
Medlem sedan mars 20041 505 inlägg
#6

Trankan skrev:

kör jag det andra får jag felmeddelandet Parse error: syntax error, unexpected '{' för den rad där scriptet börjar.

Posta koden så vi kan hjälpa dig.

Pedda skrev:

Jag skulle använda mig dels av @ och sen en die.

Enligt mig duger bara die() för utveckling och debug. Vid skarp körning är die() inte rolig eftersom den stoppar hela körningen, dvs. ingenting efter körs. I många fall finns det annan oberoende kod längre ner som också ska köras. Och om man har en HTML-sida så blir utseendet oftast helt knäppt eftersom HTML-koden bara klipps av.

Medlem sedan okt. 2006129 inlägg
#7

Troxy skrev:

Posta koden så vi kan hjälpa dig.

Finns tyvärr inte mycket att posta då koden ser ut på samma sätt som den du skrev, förrutom att den ligger i en if-sats. Testade dock att lägga funktionen utanför if-satsen och det gav ingen skillnad. :l

Medlem sedan juni 20006 031 inlägg
#8

Vad får du för felmeddelande?
Det är inte i anslutningen till databasen som du får felmeddelandet?

Medlem sedan okt. 2006129 inlägg
#9

Nepp, utan det är själva funktionen som inte kan köras. Får som tidigare nämnt felmeddelandet Parse error: syntax error, unexpected '{' för den första raden i sciptet, som innehåller try {.

Medlem sedan nov. 20041 740 inlägg
#10

Vilken version av PHP kör du?

Medlem sedan okt. 2006129 inlägg
#11

Gislaved skrev:

Vilken version av PHP kör du?

4.4.6

Medlem sedan nov. 20041 740 inlägg
#12

try/catch är väl enbart för PHP5, om jag inte minns fel.
Men @ före funktionerna borde inte ge något felmeddelande.

Medlem sedan okt. 2006129 inlägg
#13

Gislaved skrev:

Men @ före funktionerna borde inte ge något felmeddelande.

Nä, du har helt rätt. När jag tittade i koden så kom jag på att jag hade några andra mysql-funktioner som inte hade något @ före sig, så det var det som förstörde allt. Tack för hjälpen! :)

270 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
134 ms — ändringar (db)