Databaze Explorer – ref do jiné databaze
- pista5
- Člen | 72
Ahoj,
snazim se udelat toto v Database Exploreru
<?php
$this->database->fetchAll('SELECT b.*, u.username
FROM `blogy`.`blogy` b
LEFT JOIN `blog`.`phpbb_users` u USING (user_id)');
?>
zkousel jsem bez uspechu tyto 2 varianty:
<?php
$row->ref('blog.phpbb_users', 'user_id')->username
$row->ref('user_id')->username
?>
Druha varianta podle klice poznala, jakou tabulku hledat, ale nikoliv v jake
databazi
„Table ‚phpbb_users‘ does not exist.“
Poradite prosim?
Editoval pista5 (19. 6. 2020 8:36)
- dakur
- Člen | 493
@pista5 S Database Explorerem jsem nikdy nepracoval, ale z logiky věci bych řekl, že pokud chceš pracovat nad dvěmi databázemi, musíš mít aktivní dvě připojení, tj. pravděpodobně dvě instance Database Exploreru. O tom, že by na úrovni SQL šlo pracovat na dvou databázích současně, jsem neslyšel, takže si spíš myslím, že budeš muset udělat dva separé dotazy. Něco jako:
$user = $this->database->fetch("SELECT * FROM users");
$articlesFromUser = $this->database2->fetchAll("SELECT * FROM articles WHERE user_id = %i", $user->id);
(Kód je fiktivní, nepochopil jsem, co jsi chtěl ve svém kódu udělat.)
Taky je ale možné, že Database Explorer má feature práce nad více databázemi, o které nevím, protože ho neznám. :-)
Editoval dakur (19. 6. 2020 14:01)
- neznamy_uzivatel
- Člen | 115
dakur napsal(a):
pokud chceš pracovat nad dvěmi databázemi, musíš mít aktivní dvě připojení:-)
… to není úplně ideální postup. Jedno připojení k databázi = jeden
uživatel.
Jeden uživatel klidně může mít přístup k více databázím, je to
úplně normální běžná věc, imho správný postup. Zatím nebyl čas
zkoumat proč, ale od 2.4 mi to dělá podobné problémy, viz můj dotaz
nedávno: https://forum.nette.org/…ine-databazi
Smířil jsem se s tím a píšu si zatím dotazy do db->query(), jelikož
nebyl čas to zkoumat..