PHP Zwei Datenbank-Verbindungen in einem Script?

Dsimon24

Lieutenant
Registriert
Aug. 2016
Beiträge
595
Hallo zusammen,

ich habe zwei Datenbanken die unabhängig voneinander betrieben werden.
Nun möchte ich ein Script entwickeln, was auf einer Datenbank nach einem
Wert sucht und je nach Ergebnis in der anderen Datenbank einen Wert
hinterlegt.

Ich erhalte allerdings den folgenden Fehler:
"Got error 'PHP message: PHP Fatal error:
Cannot redeclare class Database..."

So wie ich es verstehe, liegt es daran, dass ich zwei Datenbanken nutze!?

Folgendes Script verwende ich, bei diesem der Fehler auftritt:

PHP:
  require_once '../src/Entities/DSGVO.php';
  require_once '../src/Entities/Personen.php';

  $dsgvo = new DSGVO();
  $personen = new PERSONEN();

  $cron = $dsgvo->runQuery("SELECT * FROM data");
  $cron->execute();
  $cron->close();

  foreach($cron as $cron_row) {
   
    $email = $cron_row['email'];

    $app = $personen->runQuery("UPDATE personen SET eintragung = 1 WHERE email = $email");
    if ($app->execute())
    {
      $app->close();
      $upd = $dsgvo->runQuery("UPDATE data SET eintragung = 1 WHERE email_adr = $email");
      $upd->execute();
     
      echo $email . "<br><br>";
    }
  }

Der Code gibt meist keinen Sinn, aber ich habe ihn auf das wesentliche gekürzt,
um hiermit eher auf das Problem mit der Fehlermeldung eingehen zu können.

Vielleicht hat einer einen Tipp für mich, wie ich es dennoch realisieren kann?

VG, David
 
der fehler wird doch wahrscheinlich von der Personen.php ausgeworfen oder nicht?
 
Genau. Ich gehe davon aus, weil diese Klasse quasi doppelt
eingebunden wird!? Wie kann ich das am besten umgehen
ohne die Klassen zusammenzulegen - falls dies überhaupt
möglich ist?
 
poste einfach die klassen.. aus dem script da erfährt man ja nicht wo der fehler ist
 
Du kannst eine Klasse nicht doppelt deklarieren. Das hat nichts mit zwei Verbindungen zu tun.
 
Wie Yuuri schon schrieb, kann man eine Klasse nicht doppelt deklarieren. Ich würde daher den Inhalt der beiden PHP Dateien (DSGVO & Personen), an den Namen anpassen.

Bsp. DSGVO.php

class DSGVOKlasse { }

Bsp. Personen.php

class PersonenKlasse { }

In den Klassen würde ich dann auch sämtlichen Variablen einen eindeutigen, zur Klasse passenden, Namen vergeben. Damit stellst du sicher, dass beim require/include keine Klasse doppelt deklariert und keine Variable mit einem anderen Wert überschrieben wird.
 
Zurück
Oben