variabile object mysqli dalla chiave di richiesta

Non sono sicuro che sia ansible. ecco quello che ho

if ($_REQUEST[db]=="abcd"){ $result =$abcdsqli->query("SELECT * FROM ..."); }elseif ($_REQUEST[db]=="efgh"){ $result =$efghsqli-> ... } 

ecco quello che voglio

 $result =$.$_REQUEST[db].sqli->query("SELECT * FROM ..."); 

Perché hai bisogno di così tanti oggetti mysqli ?

E usando $_RESQUEST nel tuo codice così apertamente come quello può portre a molti molti hack sul tuo sito.

Usa solo un ( uno [1]) object mysqli.


Io consiglio di NON UTILIZZARE QUESTO ma questo è quello che vuoi:

 $sql = "{$_REQUEST['db']}sqli"; $$sql->query("SELECT * FROM ..."); 

Quindi se $_REQUEST['db'] == 'abc' farebbe:

 $abcsqli->query("SELECT * FROM ..."); 

La tua domanda è perfetta per il model di fabbrica usando un singleton. Questo codice è scheletrico, ovvero c'è 0 validation, ecc., Ma dovrebbe darti un'idea.

 class Database { private static $dbos = arrays(); public static function getDbo($dboKey) { if (!isset(self::$dbos[$dboKey])) { switch ($dboKey) { case 'abcd': $dbo = new mysqli('localhost', 'my_user', 'my_password', 'my_db_1'); break; case 'efgh': $dbo = new new mysqli('localhost', 'my_user', 'my_password', 'my_db_2'); break; } self::$dbos[$dboKey] = $dbo; } return self::$dbos[$dboKey]; } } $result = Database::getDbo($_REQUEST[db])->query("SELECT * FROM ...");