Připojení do více databází + PDO

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

Profile picture for user Jan Polzer

Jistě, PDO jde použít. Koneckonců je Drupal PHP aplikace jako kterákoli jiná :) Nebo Ti to nefunguje? Pokud ten dotaz směřuje, zda je to "správné drupalovské", tak úplně ne. V modulu by neměl být propojovací řetězec na databázi. Na druhou stranu, toto asi nebude veřejný modul, který by měl splnit best practice ;-)

návštěvník

Díky za info... vše funguje, ale jak říkáš není to best best practice :-) ale na tom nezáleží!

Odpovědět

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru