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 — Sélectionne la base de données MS SQL
Cette fonction a été SUPPRIMÉE à partir de PHP 7.0.0.
Les alternatives à cette fonction incluent :
$database_name
[, resource $link_identifier
] ) : boolmssql_select_db() sélectionne la base de données active.
Tous les appels à mssql_query() seront faits dans cette base.
database_name
Le nom de la base de données.
Pour protéger le nom de la base de données qui contient des espaces,
des tirets ("-") ou tous autres caractères spéciaux, le nom de la base de
données doit être entouré de crochets ([]), comme montré dans l'exemple
ci-dessous. Cette technique peut également être appliquée lors de la sélection
d'un nom de base de données qui est aussi un mot réservé (comme primary
).
link_identifier
Un identifiant de lien MS SQL, retourné par la fonction mssql_connect() ou mssql_pconnect().
Si aucun identifiant de lien n'est spécifié, le dernier lien ouvert sera utilisé. Si aucun lien n'est ouvert, la fonction tentera d'établir un lien en utilisant la fonction mssql_connect() et l'utilisera.
Cette fonction retourne TRUE
en cas de succès ou FALSE
si une erreur survient.
Exemple #1 Exemple avec mssql_select_db()
<?php
// Crée une connexion à MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
// Selectionne la base 'php'
mssql_select_db('php', $link)
?>
Exemple #2 Echappement du nom de la base de données avec des crochets
<?php
// Création d'un lien vers MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
// Selectionne la base de données '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