Klasse: exception

SuReBuRn

Mitglied
Folgender Code (unnötiges,10opro funktionsfähigs mal derÜbersicht halber entfernt):

PHP:
/* connect to db */
error_reporting(7);
final class db {
	// connect to mysql and select db
	function init() {
		$this->link_id = @mysql_connect($this->_HOST,$this->_USER,$this->_PASS);
		// if (!$this->link_id) $this->sql_error("LINK ID == FALSE");
		if (!$this->link_id) throw new Exception("LINK ID == FALSE");
		if ($this->_DB != '') @mysql_select_db($this->_DB);
	}
	// eval sql error
	function sql_error($errormsg) {
		$this->errdesc = mysql_error();
		$this->errno = mysql_errno();
		
		$errormsg = "<b>Database error:</b> $errormsg\n<br />";
		$errormsg .= "<b>mysql error:</b> $this->errdesc\n<br />";
		$errormsg .= "<b>mysql error number:</b> $this->errno\n<br />";
		$errormsg .= "<b>php version:</b> ".phpversion()."\n<br />";
		$errormsg .= "<b>Date:</b> ".date("d.m.Y @ H:i")."\n<br />";
		$errormsg .= "<b>Script:</b> ".getenv("REQUEST_URI")."\n<br />";
		$errormsg .= "<b>Referer:</b> ".getenv("HTTP_REFERER")."\n<br />";
		$errormsg .= "<b>Contact:</b> <a href=\"mailto:".$this->email."?subject=SQL-DATABASE ERROR\">".$this->email."</a>\n<br /><br />";
		
		if ($this->show_error) $errormsg = "$errormsg";
		else $errormsg = "\n<!-- $errormsg -->\n";
		die("</table><font face=\"Verdana\" size=\"2\"><b>SQL-DATABASE ERROR</b><br /><br />".$errormsg."</font>");
	}
}

try {
	$db = new db;
	$db->init();
} catch (Exception $e) {
	$e->getMessage();
}

möchste als die Exception abfangen und dann via sql_error(); ausgeben lassen. ginge zwar direkt in der methode init(), möcht ich aber nicht, da unschön :)
Entweder leide ich an schlafmangel oder habe eine sonstige blockade, wie realisiere ich das nun?
 
Zuletzt bearbeitet:
möchte also die Exception abfangen und dann via sql_error(); ausgeben lassen.


edit: ooooh,,,;
PHP:
$db = new db;
try {
$db->init();
} catch(Exception $e){
print $db->sql_error($e->getMessage());
}

ok so gehts,ich schussel :)
 
Zuletzt bearbeitet:
Zurück