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'
(PHP 4, PHP 5, PECL odbtp >= 1.1.1)
mssql_select_db — Wählt eine MS SQL Datenbank aus
Diese Funktion wurde in PHP 7.0.0 REMOVED (entfernt).
Alternativ können folgende Features verwendet werden:
$database_name
[, resource $link_identifier
] ) : bool
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.
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.
Gibt bei Erfolg TRUE
zurück. Im Fehlerfall wird FALSE
zurückgegeben.
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);
?>
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'
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