2016-09-30 4 views
1

Ich benutze mssql und PHP und ich möchte wissen, was sind die Unterschiede
zwischen dem Ändern der Datenbank mit der Funktion mssql_change_db, oder um USE [DB_NAME] am Anfang der Abfrage hinzufügen oder DB_NAME.dbo.tablename in jeder Abfrage hinzufügen ?
Zum Beispiel habe ich die Datenbank mit dem Namen "LogsDB"
Also, was ist die bessere Möglichkeit, Abfrage mit Datenbank-Switching auszuführen.
Was sind die Unterschiede zwischen USE | select_db Funktion oder TABLENAME.dbo?


Gefällt Ihnen? :

mssql_select_db("LogsDB", $this -> sqlHandle); 
mssql_query("select top 1 username from changePW"); 


Oder so? :

mssql_query("USE [LogsDB] select top 1 username from changePW"); 


Oder so? :
mssql_query("select top 1 username from LogsDB.dbo.changePW");
Auf diese Weise wird die Datenbank nur für diese Abfrage geändert, und es ist nett.
Gibt es eine andere Möglichkeit, die Datenbank so einzustellen, dass sie nicht geändert wird, sondern eine Abfrage ausführt?
Wenn es mehrere Möglichkeiten gibt, Datenbanken zu wechseln, und sie sind besser als das, was ich hier gesagt habe, werde ich mich freuen, von ihnen zu hören.
Vielen Dank im Voraus :)

+0

'DB_NAME.dbo.tablename'. Sie würden dies verwenden, wenn Sie mehrere Datenbanken in einer Abfrage abfragen.'use DB 'kann oben auf der Abfrageseite definiert werden, aber wie Sie sagen, gilt es nur für diese Abfrage – mfredy

+2

Größte Sache zu beachten ist, dass' mssql_select_db() 'ist veraltet und wird von php7 entfernt - http://php.net/manual/en/function.mssql-select-db.php – WillardSolutions

+0

Außerdem können Sie den Standard-DB für Benutzer angeben, der mit SQL Server arbeitet. Wenn Sie die DB nicht angeben, verwendet sie die Standarddatenbank aus Benutzereinstellungen. – gofr1

Antwort

1
mssql_query("select top 1 username from LogsDB.dbo.changePW"); 

ich glaube, die über die beste Art und Weise ist es, eine Datenbank besonders zu wählen, wenn Sie mehrere Datenbanken abfragt werden. Es ist immer eine gute Praxis

DatabaseName.Schema.TableName 

Es gibt auch Zeit, wenn Sie über verschiedene Server abfragen müssen. In diesen Situationen

ServerName.DatabaseName.Schema.TableName 

Es bietet nur mehr Flexibilität. Meiner Meinung nach ist dies der beste Weg, dies zu tun.

Ich hoffe, es hilft.

Verwandte Themen