sql prüfen
mixmastertobsi
- php
0 romy0 mixmastertobsi0 EKKi0 mixmastertobsi0 dedlfix
0 mixmastertobsi0 Der Martin
0 Erik
0 EKKi
0 dedlfix
Hallo,
bei mir kommt es manchmal vor, dass sich mein SQL Server verabschieded. Der User erhält dann folgende Fehlermeldung
Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on
Gibt es eine Möglichkeit vorab zu prüfen, ob der MySQL Dienst läuft, bevor man sich mit der Datenbank verbinden möchte.
Hallo mixmastertobsi,
bei mir kommt es manchmal vor, dass sich mein SQL Server verabschieded. Der User erhält dann folgende Fehlermeldung
Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on
Gibt es eine Möglichkeit vorab zu prüfen, ob der MySQL Dienst läuft, bevor man sich mit der Datenbank verbinden möchte.
Habe ich das Problem jetzt nicht richtig verstanden? Du kannst doch genauso abfragen, ob er läuft. Du musst es nur besser auswerten. mysql_connect() gibt dir zurück, ob es geklappt hat oder nicht, wenn nicht, zeige eine Störungseite an, wenn es geklappt hat, dann fahre fort.
Hier findest du noch ein paar Infos rund um mysql_connect.
ciao
romy
Hallo,
folgendermaßen baue ich die MySQL Verbindung auf
$db = mysql_connect($dbserver, $dbuser, $dbpass)
or die ("Verbindungsaufnahme mit MySQL-Server fehlgeschlagen!");
Als Fehlermeldung erhalte ich folgendes, wenn der MySQL Server nicht gestartet ist
Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'localhost' (10061) in C:\xampp\htdocs\inc\db.inc.php on line 12
Verbindungsaufnahme mit MySQL-Server fehlgeschlagen!
Diese "Warning" Meldung stört mich.
Mahlzeit mixmastertobsi,
$db = mysql_connect($dbserver, $dbuser, $dbpass)
or die ("Verbindungsaufnahme mit MySQL-Server fehlgeschlagen!");
Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'localhost' (10061) in C:\xampp\htdocs\inc\db.inc.php on line 12
Verbindungsaufnahme mit MySQL-Server fehlgeschlagen!Diese "Warning" Meldung stört mich.
Du bist ja echt'n Clown ... erst bewirkst Du diese Meldung, indem Du die() benutzt - und dann stört sie Dich?
mysql_connect() gibt Dir zurück, ob der Verbindungsaufbau geklappt hat: Du musst also lediglich im Fehlerfall eine entsprechend gut menschenlesbare Meldung anzeigen - wie Dir bereits geraten wurde.
MfG,
EKKi
Hallo,
also so ganz unwissend bin ich ja nicht; aber in diesem Fall stehe ich echt auf dem schlauch.
Habe folgendes probiert, was leider auch nicht den gewünschten Erfolg bringt.
if (!mysql_connect($dbserver, $dbuser, $dbpass)) {
exit();
}
Hi!
Habe folgendes probiert, was leider auch nicht den gewünschten Erfolg bringt.
if (!mysql_connect($dbserver, $dbuser, $dbpass)) {
exit();
}
Was wäre denn der gewünschte Erfolg? Du musst und kannst nicht vorher wissen ob die Verbindung zum MySQL-Server funktionieren wird, sondern du kannst es erst nach dem ge- oder missglückten Verbindungsaufbau wissen. Daraufhin musst du dann entscheiden ob du normal oder mit einem Alternativprogramm fortfährst. Wortlos oder wortreich abbrechen ist aus Nutzersicht normalerweise keine gescheite Lösung.
Lo!
OK....und wie prüfe ich, ob der Server verfügbar ist. Da müsste es doch eine IF Abfrage geben.
if (!mysql_connect($dbserver, $dbuser, $dbpass)) {
//mach was
} else {
//mach was anderes
}
Hallo,
OK....und wie prüfe ich, ob der Server verfügbar ist. Da müsste es doch eine IF Abfrage geben.
ja, genau so:
if (!mysql_connect($dbserver, $dbuser, $dbpass)) {
//mach was
} else {
//mach was anderes
}
Und wenn du, wie das empfohlen wird, Fehlerbedingungen auch wirklich abfragst und darauf reagierst (und nur dann!), kann man auch schon mal gezielt den Fehlerunterdrückungs-Operator '@' verwenden, oder generell das Error_Reporting abstellen.
So long,
Martin
Hallo,
Und wenn du, wie das empfohlen wird, Fehlerbedingungen auch wirklich abfragst und darauf reagierst (und nur dann!), kann man auch schon mal gezielt den Fehlerunterdrückungs-Operator '@' verwenden, oder generell das Error_Reporting abstellen.
Beides sind keine idealen Ideen. Damit in einer Produktiv-Umgebung keine PHP-Fehler an den User ausgegeben werden, gibt es die Möglichkeit, alle diese Meldungen zu unterdrücken:
http://de2.php.net/manual/en/errorfunc.configuration.php#ini.display-errors
Gleichzeitig sollten diese Meldungen aber in einer Datei gespeichert werden, damit der Entwickler diese beheben kann:
http://de2.php.net/manual/en/errorfunc.configuration.php#ini.log-errors
http://de2.php.net/manual/en/errorfunc.configuration.php#ini.error-log
Mahlzeit mixmastertobsi,
Habe folgendes probiert, was leider auch nicht den gewünschten Erfolg bringt.
Sondern welchen ...? (Muss man Dir eigentlich *alle* relevanten Informationen aus der Nase ziehen?)
*WAS GENAU* willst Du? Du schriebst, dass Dich die unschöne Fehlermeldung stört - mit einem die() oder exit() erzeugst Du doch aber genau das: einen unschönen Programmabbruch.
Was willst Du denn eigentlich stattdessen?
Du weißt, dass Dir mysql_connect() per Rückgabewert mitteilt, ob die Verbindungsaufnahme geklappt hat - Du kannst diesen Rückgabewert also *sinnvoll* (d.h. in der Regel *nicht* mittels die() oder exit()) auswerten und darauf reagieren.
Oder stört Dich bereits die von mysql_connect() erzeugte Warnung? Die könntest Du mittels @ unterdrücken.
MfG,
EKKi
Hi!
bei mir kommt es manchmal vor, dass sich mein SQL Server verabschieded. Der User erhält dann folgende Fehlermeldung
Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on
Was will denn der User mit der Fehlermeldung? Er ist daran weder schuld noch kann er was an der Situation ändern und sinnvoll ist diese Information für ihn auch nicht. Der einzige Empfänger sollte der Administrator sein. Der Benutzer will irgendwas erreichen, weswegen es sinnvoll ist, aus seiner Sicht zu prüfen, wie er auch bei einem technischem Defekt zum Ziel und nicht zur Konkurrenz kommt.
Gibt es eine Möglichkeit vorab zu prüfen, ob der MySQL Dienst läuft, bevor man sich mit der Datenbank verbinden möchte.
Wurde ja schon beantwortet: Fehlerzustandsanzeiger (bei MySQL die Funktionsrückgabewerte) auswerten und sinnvoll darauf reagieren.
Lo!