Arbeiten mit 2 Datenbanken

  • 0 x
    118 Beiträge
    0 Hilfreiche Beiträge
    13. 10. 2009, 11:05

    Ich will für eine Extention mit 2 Datenbanken aus zwei Typo3 Installationen arbeiten, 1 Datenbank in der Daten stehen und 1 Datenbank in der Ergebnisse geschrieben werden (letztere steht als eine von vielen Datenbanken woraus ersichtlich wird das es Sinn macht die Datenabfrage der 1. Datenbank auszugliedern um sie nur einmal pflegen zu müssen). Gibt es für die Typo3-Datenbankbefehle die Möglichkeit die Datenbank zu ändern?
    Bisher habe ich das für die externe Datenbank auf die konventionelle Weise gemacht. Damit ist die Extension aber nicht mehr DBAL-Kompatibel und auf mySQL festgelegt.


  • 1
  • matin matin
    R2-D2
    0 x
    91 Beiträge
    0 Hilfreiche Beiträge
    13. 10. 2009, 12:31

    ich hoffe, ich habe es richtig verstanden. wenn du in die "normale" typo3 datenbank etwas schreiben oder datensätze aktualisieren möchtest, steht die seitens der typo3-api etwas zur verfügung:

    1. #Daten in Tabelle speichern - datensatz ist noch nicht vorhanden
    2. $fields_values = array(
    3. 'pid' => 'deine pid',
    4. 'deintabellenfeld1' => 'irgendwas';
    5. 'deintabellenfeld2' => 'irgendwas2';
    6. 'deintabellenfeld3' => $einevariable
    7. );
    8. $GLOBALS['TYPO3_DB']->exec_INSERTquery(
    9. 'tx_deineextension_deinetabelle',
    10. $fields_values
    11. );
    12.  
    13. #falls es benoetigt wird, die id des soeben erstellen datensatzes ausgeben lassen
    14. $lastID=$GLOBALS['TYPO3_DB']->sql_insert_id();

    oder wenn du einen datensatz aktualisierst

    1. ##Daten in Warenkorb DB speichern
    2. $updateArray = array(
    3. 'tabellenfeld1' => $irgendwas,
    4. 'tabellenfeld2' => $irgendwas2,
    5. 'tabellenfeld3' => $irgendwas3,
    6. 'tabellenfeld4' => $irgendwas4
    7. );
    8.  
    9. $res = $GLOBALS['TYPO3_DB']->exec_UPDATEquery('tx_deinextension_deinetabelle', 'uid='.$uidDesDatensatzesAendern.'', $updateArray);

  • 0 x
    118 Beiträge
    0 Hilfreiche Beiträge
    13. 10. 2009, 12:57

    ja genau so habe ich es auch gemacht. In der $GLOBALS['TYPO3_DB'] steht aber standardmäßig nur die Datenbank der aktuellen Typo3 Installation zur verfügung. Die Frage war ob ich $GLOBALS['TYPO3_DB'] verschiedene Datenbankquellen unterschieben kann, so das das Ganze noch DBAL konform ist?

  • 1