Hallo allemaal,
Ik ben bezig met een portal en probeer met php gegevens uit Microsoft SQL 2005 databases te krijgen.
Het zijn zo'n 50 verschillende databases die ik elke keer moet doorlopen. In elke database bevindt zich een tabel die ik raadpleeg om te kijken of de gebruiker toegang heeft.
Aangezien er telkens databases bijkomen gebruik ik de sys.databases om te kijken welke databases er zijn aangemaakt.
Even voor de beeldvorming doe ik de volgende dingen:
Het uitlezen van de databases duurt nu iets langer dan 60 sec. Iets waar een gebruiker niet graag op wil wachten.
Ik heb al gekeken om een view te maken zodat ik middels php maar 1 database uit hoef te lezen. Ik kan dit alleen niet met 1 sql query.
Hoe kan ik dit efficiënter aanpakken?
Ik ben bezig met een portal en probeer met php gegevens uit Microsoft SQL 2005 databases te krijgen.
Het zijn zo'n 50 verschillende databases die ik elke keer moet doorlopen. In elke database bevindt zich een tabel die ik raadpleeg om te kijken of de gebruiker toegang heeft.
Aangezien er telkens databases bijkomen gebruik ik de sys.databases om te kijken welke databases er zijn aangemaakt.
Even voor de beeldvorming doe ik de volgende dingen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| $this->conn = mssql_connect ("*.*.*.*", "gebruikersnaam", "wachtwoord") or die (mssql_get_last_message()); $q = mssql_query("select name from sys.databases WHERE NAME > '000' AND NAME < '999'"); while ($r = mssql_fetch_array($q)) { $this->checkPermission($r['name']); } public function checkPermission($database) { mssql_select_db('['.$database.']', $this->conn); $q = mssql_query("SELECT usr_id FROM humres WHERE usr_id = 'naam'"); if (mssql_num_rows($q) > 0) { echo "Heeft rechten in database ".$database."!!"; } } |
Het uitlezen van de databases duurt nu iets langer dan 60 sec. Iets waar een gebruiker niet graag op wil wachten.
Ik heb al gekeken om een view te maken zodat ik middels php maar 1 database uit hoef te lezen. Ik kan dit alleen niet met 1 sql query.
Hoe kan ik dit efficiënter aanpakken?