Ahoj řeším u nás jak se napojit z našeho modulu na více databází současně a našla jsem tohle:
  $other_database = array(
      'database' => 'databasename',
      'username' => 'username', // assuming this is necessary
      'password' => 'password', // assuming this is necessary
      'host' => 'localhost', // assumes localhost
      'driver' => 'mysql', // replace with your database driver
  );
  // replace 'YourDatabaseKey' with something that's unique to your module
  Database::addConnectionInfo('YourDatabaseKey', 'default', $other_database);
  db_set_active('YourDatabaseKey');
// execute queries here
  db_set_active(); // without the paramater means set back to the default for the site
  drupal_set_message(t('The queries have been made.'));
To chápu...ale zajímalo by mě jestli můžu udělat taky tohle:
try {
  $dbh = new PDO('pgsql:host=localhost;port=5432;dbname=testdb;user=bruce;password=mypass');
} catch (PDOException $e) {
  watchdog("your module name",
           "PDO error: %error",
           array("%error" => $e->getMessage() ),
           WATCHDOG_ERROR);
}
snažím se napojit totiž na Sphinx a udělat vlastní autocomplete pro textové políčko a běžně mimo drupal používám:
//Sphinx PDO
$ln_sph = new PDO( 'mysql:host=127.0.0.1;port=9306' );
//database PDO
$ln = new PDO( 'mysql:host=127.0.0.1;dbname=sphinx_autocomplete;charset=utf8', 'tester', 'test' );
V podstatě první spojení používám na vyhledání ve fulltextu Sphinx kde dostanu nějaká IDčka pro hledaný výraz např. IDčka článku kde se vyskytuje slovo "nevím" a to druhé spojení používám pak na získání už samotných článku podle IDček.
Jsem totiž spíš zvyklá pracovat s PDO
Díky

$connection = Database::getConnection('default', 'db_key');
To by neměl být problém, ale vzhledem k tomu že DB connection v Drupalu extenduje PDO, použil bych ji. Jen můžeš místo "db_set_active('YourDatabaseKey');" použít "$connection = Database::getConnection('default', 'YourDatabaseKey');" a tím pravděpodobně dosáhneš toho co potřebuješ.
Díky už vyřešeno a funguje…
Díky už vyřešeno a funguje to!
Přidat komentář