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 — Select MS SQL database
Această funcție a fost ELIMINATĂ în PHP 7.0.0.
Variante alternative pentru această funcție sunt:
$database_name
[, resource $link_identifier
] ) : boolmssql_select_db() sets the current active database on the server that's associated with the specified link identifier.
Every subsequent call to mssql_query() will be made on the active database.
database_name
The database name.
To escape the name of a database that contains spaces, hyphens ("-"),
or any other exceptional characters, the database name must be
enclosed in brackets, as is shown in the example, below. This
technique must also be applied when selecting a database name that is
also a reserved word (such as primary
).
link_identifier
A MS SQL link identifier, returned by mssql_connect() or mssql_pconnect().
If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if mssql_connect() was called, and use it.
Întoarce valoarea TRUE
în cazul
succesului sau FALSE
în cazul eșecului.
Example #1 mssql_select_db() example
<?php
// Create a link to MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
// Select the database 'php'
mssql_select_db('php', $link);
?>
Example #2 Escaping the database name with square brackets
<?php
// Create a link to MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
// Select the database 'my.database-name'
mssql_select_db('[my.database-name]', $link);
?>
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