[Frage] Einbinden einer externen Datenbank und Abfrage mittels TypoScript TYPO3-Version: 6.0.0

  • masterhawk masterhaw...
    Typ im Roten Hemd
    0 x
    2 Beiträge
    0 Hilfreiche Beiträge
    14. 10. 2013, 11:42

    Hallo,

    ich bin ein blutiger Typo3-Anfänger und bin auf der Suche wie ich sinnvoll eine externe oder zweite Datenbank in mein Typo3 6.0 Projekt einbinden kann. Die zweite DB ist eine bereits bestehende MySQL Datenbank und soll nur dazu dienen Informationen zu liefern. Das Typo3 braucht also nur lesenden Zugriff zu bekommen.
    Dieses Thema wurde bestimmt schon bis zum Erbrechen erfragt und behandelt, aber ich habe nach 2 Tagen Suche im Inet keine zufriedenstellende Antwort gefunden.

    Meinen aktuell favorisierten Ansatz habe ich auf dieser Seite gefunden:
    http://www.3xen.de/blog/blog-post/2012/11/29/externe-db-einbinden-mit-dbal.html

    Die Anleitung bezieht sich aber leider auf Typo 3 4.3 und lässt sich von mir nicht mit einem positiven Resultat auf mein Projekt übertragen.

    Vorabinfos:
    Name der externen Datenbank: ExternTestTypo3
    Host: localhost
    Tabelle: produkt
    -->Felder: uid, name, count, price, pid,tstamp,crdate,sorting

    Was ich bisher gemacht habe:

    1. DBAL und ADODB aktiviert
    2. typo3conf/AdditionalConfigurations.php angepasst

    1. $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['dbal']['handlerCfg'] = array(
    2. '_DEFAULT'=>array(
    3. 'type'=>'adodb',
    4. 'config'=>array(
    5. 'driver'=>'mysql',
    6. )
    7. )
    8. );
    9.  
    10. $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['dbal']['handlerCfg'] = array(
    11. // Verbindung zum Standard-DB-Server
    12. '_DEFAULT' => array(
    13. 'type' => 'adodb',
    14. 'config' => array(
    15. 'username' => '',
    16. 'password' => '',
    17. 'host' => '',
    18. 'database' => '',
    19. 'driver'=>'mysql',
    20. )
    21. ),
    22. // Verbindung zum zweiten DB-Server
    23. 'MyExternSQL' => array(
    24. 'type' => 'native',
    25. 'config' => array(
    26. 'username' => 'user',
    27. 'password' => 'xxx',
    28. 'host' => 'localhost',
    29. 'database' => 'ExternTestTypo3',
    30. )
    31. )
    32. );
    33.  
    34. $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['dbal']['table2handlerKeys'] = array(
    35. 'produkt' => 'MyExternSQL',
    36. );

    Ich habe auch schon viele andere Werte aus anderen Forenbeiträgen ausprobiert, aber diese führten auch nicht zum Erfolg

    3. Im Backend überprüft, ob die Werte in die Configuration eingetragen wurden

    4.Versucht mittels TypoScript im Template auf die Tabelle 'produkt' der externen DB zuzugreifen

    1. # Default PAGE object:
    2. page = PAGE
    3. page.typenum = 0
    4.  
    5. page.10 = CONTENT
    6.  
    7. page.10.table = produkt
    8. page.10.select{
    9. orderBy = uid
    10. }
    11.  
    12. page.10.renderObj = COA
    13. page.10.renderObj{
    14. 10 = TEXT
    15. 10.field = name
    16. 10.wrap=<h1>|</h1>
    17. }

    Der gleiche Code funktioniert natürlich bei Zugriff auf die Tabelle tt_content und dem Feld bodytext
    Ebenfalls habe ich erfolgreich getestet, ob die Datenbank über ein eingebundenes PHP-Script mit den gleichen Credentials angesprochen werden kann.

    Daher weiß ich aktuell nicht was ich falsch mache. Gibt es vllt. einen besseren und genauso unaufwendigen Weg eine extra DB einzubinden?
    Muss ich vllt nach der Aktivierung von DBAL und ADODB eine andere Komponente deaktivieren?

    Ich hoffe ihr könnt mir helfen...Danke schonmal für eure Mühen :)

    Gruß, masterhawk


  • 1
  • karlchen karlchen
    Jedi-General
    0 x
    1427 Beiträge
    30 Hilfreiche Beiträge
    14. 10. 2013, 11:51

    hi,

    In der Doku zu DBAL gibt es einige Beispiele http://typo3.org/extension-manuals/dbal/1.0.0/view/ biste du die schon mal durchgegangen ?

  • masterhawk masterhaw...
    Typ im Roten Hemd
    0 x
    2 Beiträge
    0 Hilfreiche Beiträge
    14. 10. 2013, 12:39

    Erstmal danke für deine schnelle Antwort karlchen,

    habe jetzt nochmal die Doku durchgeguckt und nix gefunden was ich anders machen könnte. Aber aufgrund von Sätzen wie

    The DBAL is configurable through $TYPO3_CONF_VARS['EXTCONF']['dbal'] entered in “ext_localconf.php” / “localconf.php”.

    denke ich, dass es für typo3 4.x geschrieben ist und vllt für 6.0 eine weitere Sache zu bedenken ist.

  • 1