Quelle est la bonne façon de changer de database en utilisant sqlsrv?

Je commence à travailler avec PHP 7 avec mssql en ce moment, et je devais changer les fonctions sql de mssql_ en sqlsrv_. Quand j'utilisais les fonctions de mssql, je changeais la database avec la fonction mssql_change_db, mais comme je l'ai vu maintenant, il n'y a pas de fonctions alternatives à utiliser à la place de cette fonction. J'ai pensé faire cette fonction en achetant moi-même, en utilisant USE [DB] dans chaque requête mais cela semble inutile ou inefficace. J'ai pensé à une autre façon, qui semble être meilleure.
L'autre façon que je pense à ce sujet est d'append avant chaque nom de table le DB_NAME.dbo.table.
J'ai également commencé à build une fonction de cette façon, qui trouve le nom de la table et ajoute automatiquement le nom de la database avec le ". Dbo" avant le nom de la table.
Voici ce que j'ai fait jusqu'à maintenant: (Je viens de commencer à le build)
C'est juste un exemple, de malédiction ce n'est pas encore fini.

public function exec($mainQuery, $db = NULL) { if(isset($db)) { $query = $mainQuery; $query = explode('from ', $query); $query = $query[1]; // Getting the rest of the query after the word "Form" if (strpos($query, 'where') !== false) { // Checking if the rest of the query includes the word "Where" $query = explode('where', $query); // Taking the word before the word "Where" $tableName = $query[0]; } else { // The rest of the query is actually the table name, because there is no "Where" in the query $tableName = $query; } $pQuery = str_replace( "$tableName", " $db.dbo.$tableName", $mainQuery); // Replacing the table name with the DB.dbo.tablename return sqlsrv_query($this -> sqlHandle, $pQuery); } else { return sqlsrv_query($this -> sqlHandle, $mainQuery); } } 

Je devrais le build aussi pour JOIN, INSERT (INTO), UPDATE.
Je ne sais pas pourquoi, mais j'ai l'printing que c'est une mauvaise façon de faire ça,
C'est pourquoi je vous request quel est le meilleur moyen de changer de database.
Merci d'avance.

Ce n'est pas une bonne idée d'utiliser la USE Database ou de changer la database dans la requête, en cours d'exécution à partir de PHP (vous avez fait un très bon tour avec les noms de DB). Pour ce genre de choses mieux utiliser les procédures stockées et les appeler de PHP.

Dans ce cas, vous n'avez pas besoin de penser à quel schéma ou database votre table est, que tout est écrit dans SP.

Une autre méthode consiste à utiliser une database par défaut pour tous les users et à utiliser la USE database lorsque vous avez besoin d'une table à partir d'une database par défaut.