Hallo Jens36,
In Zeile 45 bekommt er einen Befehl, den er nicht erwartet hat. Meist ist dies ein vergessener Strichpunkt in der Zeile DAVOR. Das ist bei Dir nicht der Fall.
Du bist in einer „CLASS“-Definition, hierin darf es nur und ausschließlich Funktionen (function) und Variablendefinitionen (var) geben.
In Zeile 44 schließt Du die Function „UseDatabase“, und ab da geht es wie folgt weiter:
44:}
45:
46:if (in_array($dbname,$databases) ||
47:in_array(strtolower($dbname),$databases))
48:{
In Zeile 44 wird die vorherige Function geschlossen und es kommt dann eine IF-Abfrage in Zeile 46, die da nicht kommen darf weil sie nicht innerhalb einer function ist.
Wilde Vermutung: Du wolltest die Functioin „UseDatabase“ erst in Zeile 58 schließen. Also nimm entweder in Zeile 44 die Klammer raus oder ändere Zeile 39 ab, indem Du nach dem Else einen Befehlsblock öffnest den Du dann in Zeile 44 wieder schließt:
39:else{
Du schreibst sehr spartanischen Code, ich persönlich setze auch da Klammern wo es nicht nötig wäre (z.B. nach einem ELSE wenn nur ein Befehl folgt). Das macht den Code meiner Ansicht nach lesbarer. Aber das ist Geschmackssache.
Viele Grüße,
Markus