phpbar.de logo

Mailinglisten-Archive

[php] "No-MySQL Crash" verhindern

[php] "No-MySQL Crash" verhindern

Jens Benecke php_(at)_jensbenecke.de
Tue, 10 Oct 2000 15:58:51 +0200


On Tue, Oct 10, 2000 at 03:34:16PM +0200, Koch Markus B wrote:

> Kann ich es ermöglichen  das anstelle einer Fehlermeldung auf einer Seite
> die "auch" MySQL Elemente enthält, die restliche Seite nicht geladen wird
> wenn die Verbindung nicht online ist.  Zzt habe ich nur eine schwere
> Fehlermeldung, die mir sagt keine Verbindung zur DB herstellbar...  Naja
> ich hoffe da gibt's etwas ;o) mfg Markus "Perl is a four letter word."

du kannst doch einfach nachprüfen ob die Verbindung vorhanden ist, und dann
halt anders verzweigen. mysql_connect gibt doch einen Errorcode zurück,
oder nicht?

Noch besser ist das mit der PHPLIB (phplib.netuse.de), da gibts eine eigene
Fehlerbehandlungsmethode. Da machst du das so:

<?
	class DB_hh extends DB_Sql {
	  var $Host     = "local-horst";
	  var $Database = "foo";
	  var $User     = "bar";
	  var $Password = "XXXXXXXXXX";

	  var $Halt_On_Error = "report";
	  var $logfile	= "sql.log";

	  # Fehlermeldungen loggen und zur Fehlerseite springen.
	  function haltmsg($msg) {
	 	$fp = fopen($logfile, "a+");
		$msg = sprintf("%s: error %s (%s) - %s\n",
			date("Y-M-D H:i:s"), $this->Errno, $this->Error, $msg);
		fputs($fp, $msg);
		if(file_exists("dberror.php") {
			Header("Location: dberror.php");
		} else {
			echo "\n\n<!-- $msg -->\n\n";
		}
		fclose($fp);
	  }
	}

# vim:set syntax=php3:
?>

und benutzen tust du die Klasse dann so:

<?
$q = new DB_hh;
$q->query("select * from tabelle where foo='bar'");

echo "<b>" . $q->f("spalte1") . "</b>\n";




-- 
"Ich kenne zwar Netbus (bevorzuge allerdings            http://www.linuxfaq.de  
 SubSeven), aber was zur Hölle ist RFC791???!"       http://www.hitchhikers.de    
 -- Karsten in de.org.ccc                            http://www.jensbenecke.de


php::bar PHP Wiki   -   Listenarchive