---
title: "Ta reda på felorsak i en class"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/93038-ta-reda-på-felorsak-i-en-class"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Peeer"
published: "2003-12-18T21:45:19.000Z"
updated: "2003-12-21T20:35:45.000Z"
replies: 4
views: 338
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/93038-ta-reda-på-felorsak-i-en-class"
---

# Ta reda på felorsak i en class

## #1 — Peeer, 2003-12-18T21:45Z

Hej!
Har en databasclass som jag använder på diverse sidor. Problemet är att jag vill ha ut vilken rad det var som genererade mysql-felet.

```php
class Database
{
	//...
	function query($query) {
		$result = @mysql_query($query, $this->connection)
			or die(mysql_errno() ." - ". mysql_error());
		return $result;
	}
}
..

$db = new Database;
$db->query("select kolumn_som_inte_finns from tabell"); //Rad XX
```

I koden ovan skulle jag vilja få ut, förutom mysql-felmeddelandet, att felet är på rad XX i filen X.php.

Går det, och hur isf?

Permalänk: https://www.webforum.nu/p/93038

## #2 — SPiN, 2003-12-21T17:38Z

Hm, kanske lite sent. Men jag vet inte om du har löst det eller inte, så jag ger ett svar här ändå. :)

Det finns en funktion som heter debug_backtrace() som du kan använda för det här. Den genererar och returnerar en associativ array med en massa nyttig information.

```
/* PHP-kod */
$errList = debug_backtrace();
```

Arrayen innehåller nu ett par element beroende på hur din kod ser ut. Kika på <http://se.php.net/debug_backtrace> för att se vilken information som kan finnas lagrad.

Det här kan hjälpa dig, jag vet inte - det är nog det närmaste du kommer åtminstone. :)

Permalänk: https://www.webforum.nu/p/1235650

## #3 — Peeer, 2003-12-21T20:23Z

Ja nästan. Om jag skriver ut hela arrayen som debug_backtrace() returnerar så fungerar det fint, men hur gör jag för att bara få med line ur den?

```
...
or die(mysql_errno() ." - ". mysql_error() . "Errline: " . debug_backtrace()["line"]);
```

Fungerar ju inte riktigt. Jag kan väl inte heller mellanlagra resultatet från funktionen i en array?

```
or {
$tmparr = debug_backtrace();
die(mysql_errno() ." - ". mysql_error() . "Errline: " . $tmparr["line"])
};
```

Så hur gör jag? :q

Permalänk: https://www.webforum.nu/p/1235730

## #4 — SPiN, 2003-12-21T20:28Z

Det andra exemplet fungerade inte eller?

Om inte kan du göra nåt fulhack;

```
$flag = false;
... or $flag = true;
if( $flag ) {
     echo mysql_errno();
     echo mysql_error();
     $errList = debug_backtrace();
     echo $errList[ 'line' ];
     die();
}
```

Permalänk: https://www.webforum.nu/p/1235732

## #5 — Peeer, 2003-12-21T20:35Z

Tack. Fick justera $errList\[ 'line' \]; till $errList\[0\]\[ 'line' \];
Nu fungerar det :)

Permalänk: https://www.webforum.nu/p/1235734

---

Tråden på webben: https://www.webforum.nu/amne/php/93038-ta-reda-på-felorsak-i-en-class
