[PHP/mySQL] naam van huidige database opvragen: hoe?

Pagina: 1
Acties:

Onderwerpen


  • Hoppie
  • Registratie: Februari 2001
  • Niet online
Ik wil de naam van de huidige in gebruik zijnde database opvragen om die te kunnen bewaren voor later gebruik:
PHP:
1
2
3
4
5
6
7
8
9
mysql_select_db("huidige_db",$database);
check_user_rights($uid, "recht"); 
// vergelijkt rechten van $uid in database gebruikers_db met gewenste
// rechten "recht". Hierbij wordt gebruikers_db geselecteerd.
$sql_query = "SELECT bla FROM huidige_tbl WHERE id=$id";
$result = mysql_query($sql_query, $database); // en hier gaat het fout!
// niet huidige_db is geselecteerd, maar gebruikers_db en dus faalt de 
// query...
$row = mysql_fetch_array($result);

Wat ik nu wil in de aangeroepen functie, is kijken wat de huidige db is en daar de naam van bewaren. Vervolgens voert de functie z'n werk uit en selecteerd de huidige db weer.
Maar hoe?

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Ik snap niet geheel wat je wilt bereiken, als je dat duidelijker kunt maken is het gemakkelijker om je te helpen. Je wilt de rechten van iemand controleren, waarom moet je daarvoor meerdere db's gebruiken? Overigens kun je meerdere connecties maken met een database. Dit kun je ook op www.php.net vinden bij de mysql_connect functie.

code:
1
2
$db1=mysql_connect(iets)
$db2=mysql_connect(iets)

[ Voor 12% gewijzigd door djluc op 27-09-2003 17:09 ]


  • Hoppie
  • Registratie: Februari 2001
  • Niet online
Ik heb één server waarnaar ik connect. Dat is al gebeurd.
Maar op die server heb ik meerdere databases die ik door elkaar gebruik. Echter als ik bezig ben met huidige_db en wil even iets uit gebruikers_db halen, dan moet ik daarna opnieuw huidige_db selecteren. Nu kan ik dat doen na ieder aanroep van de functie die de gebruikers_db gebruikt, maar ik vind het mooier als die functie dat zelf afhandeld!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

offtopic:
Doe even wat aan je signature, er is een maximum aan gesteld van 5 regels :) Zie ook http://gathering.tweakers.../forumsurvival#FS_profile


Je kunt natuurlijk ook gewoon eerst de gebruikers ophalen en verwerken en daarna pas met de andere database aan de slag gaan. Dan hoef je maar 1 keer van database te wisselen.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • ironx
  • Registratie: Augustus 2001
  • Laatst online: 01-07 19:42
Je kan een Query uitvoeren om te vragen in welke database je nu zit:
DATABASE()

Returns the current database name:
mysql> SELECT DATABASE()
-> 'test'
If there is no current database, DATABASE() returns NULL as of MySQL 4.1.1, and the empty string before that.


This posting is provided "AS IS" with no warranties, and confers no rights.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

volgens mij is er iets grondig mis met je code als je niet weet in welke database je "op dat moment" bezig bent ....

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • slm
  • Registratie: Januari 2003
  • Laatst online: 12-11-2023

slm

waarom gebruik je eigenlijk niet gewoon verschillende tabellen ipv verschillende db's? als je toch maar op één en dezelfde server zit?

To study and not think is a waste. To think and not study is dangerous.


  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

Hoppie schreef op 27 September 2003 @ 17:18:
Ik heb één server waarnaar ik connect. Dat is al gebeurd.
Maar op die server heb ik meerdere databases die ik door elkaar gebruik. Echter als ik bezig ben met huidige_db en wil even iets uit gebruikers_db halen, dan moet ik daarna opnieuw huidige_db selecteren. Nu kan ik dat doen na ieder aanroep van de functie die de gebruikers_db gebruikt, maar ik vind het mooier als die functie dat zelf afhandeld!
Je hebt verscheidene databases waar je naar connect. Het aantal connecties met een server is niet relevant; djluc geeft aan dat (en hoe) je connecties met databases tegelijk open kan hebben.

In dit geval voeg je achter regel 1 een extra connect (mysql_select_db("gebruikers_db",$db_gebruikers);) toe; geef je in regel 6 van je code de juiste databasehandler mee (dat is dan "$database"), en hetzelfde doe je onder check_user_rights($uid, "recht") (waar ergens een mysql_query met "$db_gebruikers" in moet) - en volgens mij ben je dan hartstikke klaar.

Niet te moeilijk maken :)


Journalism is printing what someone else does not want printed; everything else is public relations.


  • Hoppie
  • Registratie: Februari 2001
  • Niet online
Rataplan schreef op 27 September 2003 @ 17:33:
[...]
Je hebt verscheidene databases waar je naar connect. Het aantal connecties met een server is niet relevant; djluc geeft aan dat (en hoe) je connecties met databases tegelijk open kan hebben.

In dit geval voeg je achter regel 1 een extra connect (mysql_select_db("gebruikers_db",$db_gebruikers);) toe; geef je in regel 6 van je code de juiste databasehandler mee (dat is dan "$database"), en hetzelfde doe je onder check_user_rights($uid, "recht") (waar ergens een mysql_query met "$db_gebruikers" in moet) - en volgens mij ben je dan hartstikke klaar.

Niet te moeilijk maken :)
Dit is de simpelste oplossing die m'n probleem oplost!
Bedankt!
offtopic:
Ik heb m'n signatuur ff aangepast. Heb de FAQ al héél lang niet meer gelezen.....

[ Voor 5% gewijzigd door Hoppie op 29-09-2003 10:44 . Reden: tiepvout ]


  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

Hoppie schreef op 27 september 2003 @ 17:41:
Dit is de simpelste oplossing die m'n probleem oplost!
Bedankt!
Credit should go to djluc, ik heb alleen zijn post wat anders opgeschreven ;)

offtopic:
offtopic is met dubbel-f, en anders wordt 'ie niet geparsed :P Voor de volgende keer: [ot][/ot] mag ook!


Journalism is printing what someone else does not want printed; everything else is public relations.


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Hoppie:
offtopic:
Ik heb m'n signatuur ff aangepast. Heb de FAQ al héél lang niet meer gelezen.....
d:)b

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1