Kako povezati 2 mysql bazi hkrati?
7 naročnikov
7 naročnikov
Pozdravljeni,
Na internetu sem našel nekaj primerov za povezavo dveh baz (Multiple mysql database). Bazi sta na istem strežniku. Nekje sem zasledil, da bazi lahko združim tako, da se doda new pri povezavi s serverjem. Primer: $povezava = new mysqli_connect('localhost',' ',' ',' ');. To sem tudi poskusil vendar mi ne deluje.
Za trenutno branje ene povezave uporabljam spodnjo kodo. ( Spodnja koda deluje samo za eno bazo.
Če na kratko povzamem želim, dobiti iz obeh baz podatke istočasno in jih prikazati.
$povezava = mysqliconnect('localhost',' ',' ',' ');
mysqliset_charset($povezava,"utf8");
mysqliselectdb($povezava,"TABELA");
$preberi = "SELECT * FROM TABELA Where imeurl='$imeurl' ";
$preberi = $povezava>query($preberi);
$preberipodatek = $preberipodnapiseinfo->numrows;
10 odgovorov
Tabela ali baza?
Sprašuješ glede baze v kodi pa omenjaš table.
PS: Z mysqliselectdb izbiraš bazo ne tabelo.
Mogoče sem malce preveč zakompliciral... Bom probal malce drugače zapisati. Prebrati želim obe bazi hkrati (ime prve baze je baza1 in ime druge baze je baza2) iz obeh baz pa želim prebrati poljubne tabele ( iz baze1 -> Tabela 1 in iz baze 2 -> Tabela 2 ). Podatke pa želim prikazati istočasno na strani iz obeh tabel ( Tabela 1 in Tabel 2 ). Torej podatke iz tabele 1 ( se nahaja v bazi 1) in iz tabele 2 ( se nahaja v bazi 2 ) želim prikazati na strani istočasno.
Mogoče bo tako bolj razumljivo. Želel sem tako ( vendar to ne deluje ):
$povezava1 = mysqliconnect('localhost',' ',' ',' '); in $povezava2 = new mysqliconnect('localhost',' ',' ',' ');
Lahko se povežeš preko ene povezave, samo user ki se povezuje imore imeti pravice za dostop do obeh baz.
Nato dostopaš tako:
SELECT ... FROM BAZA1.TABELA1
lpd
če imaš cPanel, greš tam na MySQL databases, in če imaš dve bazi npr
baza1
baza2
user1
user2
baza1 (user1)
baza2 (user2)
dodaš npr k bazi baza1 še user2 da bo
baza1(user1, user2)
baza2(user2)
in potem z user2 delaš query takole
SELECT * FROM baza1.imetabele prva, baza2.imetabele druga WHERE prva.imepolja = 'Ljubljana' and druga.imepolja='Ljubljana'
Če imaš to lokalno greš pa v phpmyadmin in izbereš bazo na kateri želiš dodati še drugega uporabnika
Nato v SQL zavihku vpišeš npr
GRANT ALL PRIVILEGES ON baza1.* TO 'user2'@'%' WITH GRANT OPTION;
Lahko mu daš tudi drugačne pravice, namesto GRANT ALL daš GRANT SELECT
Če mu želiš dati samo SELECT pravice in samo NA ENO TABELO v bazi daš npr
GRANT SELECT PRIVILEGES ON baza1.imetabele TO 'user2'@'%' WITH GRANT OPTION;
Pisal sem po spominu (postopek), stavke pa sem kopiral tako da so možne napake v postopku.
Lahko pa vprašaš če kaj ne bo šlo in daš kak screenshot zraven za lažjo predstavo.
Ena možnost bi bila mogoče tudi da narediš view, ki zduži podatke iz obeh baz in obeh tabel in potem delaš samo s tem view-om.