Datenbankabfrage bei externer Datenbank mit db_set_active
Eingetragen von jonas28@drupal.org (96)
am 05.12.2008 - 13:26 Uhr in
am 05.12.2008 - 13:26 Uhr in
Ich möchte eine Datenbankabfrage aus einer externen Datenbank erstellen:
Wie auf http://drupal.org/node/18429 beschrieben habe ich die settings.php folgendermaßen geändert.
<?php
$db_url['default'] = 'mysql://drupal:drupal@localhost/drupal';
$db_url['mydb'] = 'mysql://user:pwd@localhost/anotherdb';
?>
Für meine Datenbankabfrage nutze ich dann ein ähnliches codesnippet wie das folgende
<?php
db_set_active('mydb');
db_query('SELECT n.title FROM {node} n'); // ... usw
//Switch back to the default connection when finished.
db_set_active('default');
?>
jetzt habe ich nur das problem, dass dank settings.php meine 'default' Datenbank das $db_prefix = 'ABC_' nutzt.
<?php
$db_prefix = 'ABC_';
?>
Die Datenbank 'mydb' hat allerdings kein prefix.
Darum wird wirft meine Abfrage nur eine Fehlermeldung aus:
user warning: Table 'mydb.ABC_node' doesn't exist ...
Ich müsste also irgendwie in der settings.php angeben, dass $db_prefix = 'ABC_' nur für $db_url['default'] gelten soll... und nicht für $db_url['mydb']
Hat da jemand eine Idee?
Gruß Jonas
- Anmelden oder Registrieren um Kommentare zu schreiben
Lösung für Datenbankabfrage bei externer Datenbank
am 05.12.2008 - 14:18 Uhr
Ich habe jetzt einfach die Klammern {} in der Abfrage entfernt.
<?php
db_set_active('mydb');
db_query('SELECT n.title FROM node n'); // ... usw
//Switch back to the default connection when finished.
db_set_active('default');
?>
Nun wird nicht mehr das Prefix ABC angehängt.