PHP dynamisch mit unterschiedlichen Datenbanken verbinden?

Hallo!

Folgende Situation:

Es gibt mehrere Datenbanken. Eine für alle Installationen meines Projektes (beinhaltet Zugangsdaten für Schul-DB's) und dann weitere, schulspezifische Datenbanken, in denen jeweils andere Dinge stehen (wie zum Beispiel Schüler mit ihren Logindaten, etc.)

Der Benutzer ruft also eine Loginseite auf und gibt eine Schul-ID ein. Nach Buttonklick wird die an ein PHP-Skript übergeben, welche dann aus der Datenbank aller Instanzen die entsprechenden Zugangsdaten für die schulspezifische Datenbank ausliest (anhand der Schul-ID).

Anschließend sollen diese als Variable gesetzt werden, sodass von überall in diesem Skript darauf zugegriffen werden kann. Dabei soll das Ganze allerdings nur für diese Session ersetzt werden und nicht in der Datei. Sodass andere Schüler andere Schul-ID's und damit auch andere Schul-DB's verwenden können.

Wenn der Benutzer dann auf der Loginseite seinen Benutzernamen und sein Passwort eingibt, wird dieses wieder an das PHP-Skript übergeben, welches nun in der schulspezifischen DB nachschaut, ob dort der entsprechende Nutzer existiert.

Folgendes Schema habe ich bis jetzt:

class DB {
  private static $_api_username = "root";
  private static $_api_password = "";
  private static $_api_host = "localhost";
  private static $_api_name = "programmingnow_host";
  private static $_api;

  private static $_db_username = $_SESSION['school_db_user'];
  private static $_db_password = $_SESSION['school_db_pass'];
  private static $_db_host = "localhost";
  private static $_db_name = $_SESSION['school_db_name'];
  private static $_db;

  function __construct() {
    try {
      self::$_api = new PDO("mysql:host=" . self::$_api_host . ";dbname=" . self::$_api_name . ";charset=utf8mb4",  self::$_api_username , self::$_api_password);

      if (isset($_SESSION['school_db_name'])) {
        self::$_db = new PDO("mysql:host=" . self::$_db_host . ";dbname=" . self::$_db_name . ";charset=utf8mb4",  self::$_db_username , self::$_db_password);
      }
    }
    catch(PDOException $e) {
      echo "Datenbankverbindung gescheitert!";
      die();
    }
  }
  
  function connectToSchoolDB($school_id) {
    $stmt = self::$_api->prepare("SELECT instance_db_name, instance_db_user, instance_db_pass FROM instances WHERE instance_key=:instance_key");
    $stmt->bindParam(":instance_key", $school_id);
    $stmt->execute();
    $result = $stmt->fetch();
    $result['instance_db_name'] = $_SESSION['school_db_name'];
    $result['instance_db_user'] = $_SESSION['school_db_user'];
    $result['instance_db_pass'] = $_SESSION['school_db_pass'];
  }

  [..] // Der ganze Rest an Funktionen (wie Login)
} 

Der obige Code funktioniert aber nicht.

Könnt ihr mir da helfen? Wie kann ich das realisieren bzw. wo liegt der Fehler?

Danke schon einmal im Voraus!

VG!

Computer, Technik, HTML, Webseite, programmieren, MySQL, PHP, Technologie, Webentwicklung
UX Design oder Medieninformatik studieren (oder anderes)?

Hallo zusammen, ich bin aktuell unentschlossen ob ich Medieninformatik oder UX Design an der IU studieren sollte. Vielleicht habt ihr Erfahrungen aus eurem Beruf oder Studium und könnt mir Tipps geben.

---

Zu meiner Geschichte:

ich bin aktuell seit 2 Jahren mit meiner IT Ausbildung fertig und arbeite als Prozessanalyst, Low Code Developer und teilweise Scrum Master. Ich entwickle gerne privat Software und Webseiten mit Freunden und würde lieber in die "richtige" (Web/)Softwareentwicklung gehen.

Nun hab ich vor einigen Wochen aus reinem Interesse mit dem Google UX Designer Coursera Kurs angefangen und bin echt begeistert von dem Kurs. Natürlich interessiert mich Programmierung auch, genau so wie meine aktuelle Stelle mit Prozessanalyse und Prozessmodellierung und und und. Ihr seht, ich habe viele Bereiche die mich interessieren, was blöd ist, da man ja lieber einen Spezialisten als einen Generalisten haben möchte.

Ich will unbedingt einen Bachelor und ggf. Master machen, das war schon immer mein Wunsch. Es würde sich anbieten dies im Fernstudium neben meiner Arbeit zu machen, die Zeit hätte ich. Nun bin ich unentschlossen ob Medieninformatik oder UX Design an der IU das richtige wäre.

Medieninformatik klingt nach einem guten Kompromiss zwischen Informatik und UX Design, da mich sowohl UX Design als auch Informatik/Entwicklung interessiert und ich noch unsicher bin ob ich als UX Designer in der Arbeitswelt etwas taugen würde.

Jedoch denke ich wäre es besser wenn ich entweder konkret Informatik oder UX Design studiere um einen klaren Weg zu gehen, als Medieninformatiker werde ich ja schon eher als Entwickler stellen finden und nicht als UX Designer, denke ich. Bin halt noch sehr unsicher worauf ich mich jetzt festlegen soll.

Habt ihr da vielleicht Tipps oder auch einfach eine persönliche Meinung zu meiner Situation?

Vielen Dank schonmal an alle!!

Studium, Fernstudium, Informatik, Medieninformatik, Softwareentwicklung, Webentwicklung, Ausbildung und Studium, IUBH, UX-Design, Beruf und Büro

Meistgelesene Beiträge zum Thema Webentwicklung