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 — Selecciona la base de datos MS SQL
Esta función está OBSOLETA en PHP 7.0.0.
Las alternativas a esta función son:
$database_name
[, resource $link_identifier
] ) : boolmssql_select_db() selecciona la base de datos activa actualmente en el servidor, que está asociada con el identificador link-identifier.
Cada subsiguiente llamada a mssql_query() se realizará en la base de datos activa.
database_name
El nombre de la base de datos.
Para indicar un nombre de base de datos que contenga espacios, guiones ("-"), o cualquier otro caracter excepcional, el nombre de la base de datos debe indicarse entre corchetes, tal y como se muestra en el siguiente ejemplo. Esta técnica debe ser aplicada también cuando se quiera indicar un nombre de base de datos que sea también una palabra reservada (como primary).
link_identifier
Un identificador de conexión MS SQL, devuelto por mssql_connect() o mssql_pconnect().
Si no se especifica ningún identificador, se asumirá la última conexión abierta. Si no hay ninguna conexióna bierta, la función intentará establecer una conexión como si se hubiera llamado a mssql_connect() , y utilizarla.
Devuelve TRUE
en caso de éxito o FALSE
en caso de error.
Ejemplo #1 Ejemplo con mssql_select_db()
<?php
// Crear una conexión a MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
// Seleccionar la base de datos 'php'
mssql_select_db('php', $link);
?>
Ejemplo #2 Indicar el nombre de la base de datos entre corchetes
<?php
// Crear una conexión a MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
// Seleccionar la base de datos '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