Problem mit if-elseif-Anweisung

qsrs

Erfahrenes Mitglied
Hallo,

ich habe ein Problem mit einer if-elseif-Anweisung in einem Script das ich geschrieben habe.

Kurze Erklärung:
Habe einen Setupassistenten, der Informationen zusammenträgt. Diese Informationen werden u. a. in meinen Anweisungen verarbeitet. Es wird eine Datei angelegt und ein paar Tabellen in einer DB erzeugt.

Ich möchte Folgendes realisieren:
Es soll eine benutzerdefinierte Fehlermeldung ausgegeben werden wenn

1. Die Datenbankverbindung fehlschlägt
2. Wenn das Anlegen der Datei fehlschlägt
3. Wenn beides fehlschlägt

Das Problem:
Es wird die Fehlermeldung ausgegeben, dass die Verbindung zur Datenbank fehlschlug obwohl die Datenbankinformationen korrekt sind. Das Problem muss also in der Anweisung liegen.

Hier die Anweisung (habe alles bis auf das Wesentliche weggelassen):
PHP:
if ((@!mysql_query ($sql, $dbconnect)) && (@!fopen($file, "w+"))) {
$info_install_output = "$info_install_error$info_install_error1<br>$info_install_error2";
}
elseif (@!mysql_query ($sql, $dbconnect)) {
fopen($file, "w+");
fwrite($resource, $content);
fclose($resource);
$info_install_output = "$info_install_error$info_install_error1";
}
elseif (@!fopen($file, "w+")) {
mysql_query ($sql, $dbconnect);
mysql_close($dbconnect);
$info_install_output = "$info_install_error$info_install_error2";
}
else {
mysql_query ($sql, $dbconnect);
mysql_close($dbconnect);
fopen($file, "w+");
fwrite($resource, $content);
fclose($resource);
$info_install_output = "$info_install_success";
}
Hier noch die Fehlermeldungen zum besseren Verständnis:
PHP:
$info_install_error = "The Setup has not been finished.<p><strong>Error</strong><br>";
$info_install_error1 = "- Connection to Database failed. Check if the Database-Informations are correct.";
$info_install_error2 = "- Could not create \"config.php\". Check if the directory \"config\" has the neccessary rights to write (777).";
Ich würde mich wirklich freuen, wenn mir jemand weiterhelfen könnte.
 
Fehler find ich leider keinen, es dürfte soweit alles richtig sein... :confused:

Wie wäre es, wenn du mal die @ weglässt, und dir dann die Fehlermeldung anschaust?!

Der Fehler dürfte eher an der Verbindung zur DB liegen, nicht an der Syntax!

lg D;-]c
 
Oh Mann, klar. Ich sollte natürlich nur abfragen, ob die Datenbankverbindung funktioniert und nicht ob die SQL-Abfrage funktioniert. Hab's jetzt geändert und es funktioniert:
PHP:
if ((@!mysql_connect ($set_dbhost, $set_dbuser, $set_dbpass))
Vielen Dank nochmals.
 
Zurück