PHP Doku:: Wählt eine MS SQL Datenbank aus - function.mssql-select-db.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDatenbankerweiterungenAnbieterspezifische DatenbankerweiterungenMicrosoft SQL ServerMssql-Funktionenmssql_select_db

Ein Service von Reinhard Neidl - Webprogrammierung.

Mssql-Funktionen

<<mssql_rows_affected

MySQL>>

mssql_select_db

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_select_dbWählt eine MS SQL Datenbank aus

Beschreibung

bool mssql_select_db ( string $database_name [, resource $link_identifier ] )

mssql_select_db() setzt auf dem Server die aktuelle Datenbank, auf die sich die angegebene Verbindungskennung link_identifier bezieht. Wurde keine Verbindungskennung angegeben, wird die zuletzt geöffnete Verbindung angenommen.

Jeder folgende Aufruf von mssql_query() bezieht sich auf die geöffnete Datenbank.

Parameter-Liste

database_name

Der Name der Datenbank

Um einen Datenbanknamen, der Leerzeichen, Bindestriche oder irgendwelche andere ungewöhnliche Zeichen enthält zu maskieren, muss er, wie im folgenden Beispiel gezeigt, in Klammern gesetzt werden. Diese Technik muss auch angewandt werden, wenn eine Datenbank ausgewählt wird, deren Name ein reserviertes Wort ist (wie z.B. primary).

link_identifier

Der von mssql_connect() oder mssql_pconnect() zurückgegebene Bezeichner einer MS SQL-Verbindung

Falls keine Verbindungskennung angegeben wird, wird von der zuletzt geöffneten Verbindung ausgegangen. Wenn es keine offene Verbindung gibt, versucht die Funktion eine Verbindung aufzubauen, als wäre mssql_connect() aufgerufen worden, und diese zu benutzen.

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Beispiele

Beispiel #1 mssql_select_db()-Beispiel

<?php
// Mit MSSQL verbinden
$verbindung mssql_connect('KALLESPC\SQLEXPRESS''sa''phpfi');

// Die Datenbank 'php' auswählen
mssql_select_db('php'$verbindung);
?>

Beispiel #2 Maskieren des Datenbanknamens mit eckigen Klammern

<?php
// Mit MSSQL verbinden
$verbindung mssql_connect('KALLESPC\SQLEXPRESS''sa''phpfi');

// Die Datenbank 'mein.datenbank-name' auswählen
mssql_select_db('[mein.datenbank-name]'$verbindung);
?>

Siehe auch


5 BenutzerBeiträge:
- Beiträge aktualisieren...
jack at downeastinternet dot com
28.10.2010 21:37
I have noted that mssql_select_db fails if the database name contains a dash or hyphen. for example a database named foo-bar will fail and the error that is returned indicates that the name was interpreted as only 'foo'
Ben Ward
6.09.2010 13:17
A way around this if you cannot avoid a long DB name is to create a new db and add views.

eg a database called [abcdefghijklmnopqrstuvwxyzABCDEFG] has a table in it called tblHelloWorld.
To reference this you create a database called [alphabet] and create a view with the following query,

SELECT *
FROM [abcdefghijklmnopqrstuvwxyzABCDEFG].dbo.tblHelloWorld

save this view as tblHelloWorld

not sure if this will work on inserts but it does on select queries.
oyoboy
23.09.2008 7:00
Database names with '-' must also be enclosed in [].

eg. if $databaseName = "my-database" must be selected as:

    mssql_select_db('['.$databaseName.']', $connection);
edoceo
20.08.2008 20:59
Use of square brackets to enclose the database name is also necessary if the name contains a dot: '.'

e.g.

mssql_select_db('Company.ERP');
 
Produces the error:
Warning: mssql_select_db(): Sybase:  Server message:  Could not locate entry in sysdatabases for database 'Company'. No entry found with that name. Make sure that the name is entered correctly. (severity 16, procedure N/A) in

mssql_select_db('[Company.ERP]');
 
Will select successfully
ifintel
10.02.2008 16:15
mssql_select_db() seems to truncate the databasename at the length of 30 characters. In my example the following error occured:

mssql_select_db("VeryLongDatabaseNameWhichIsReallyLong", $this->dbConn);

Warning: mssql_select_db(): message: Could not locate entry in sysdatabases for database 'VeryLongDatabaseNameWhichIsRea'. No entry found with that na
me. Make sure that the name is entered correctly. (severity 16) in...

A shorter databasename solved this issue.



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)