Database names with '-' must also be enclosed in [].
eg. if $databaseName = "my-database" must be selected as:
mssql_select_db('['.$databaseName.']', $connection);
mssql_select_db
(PHP 4, PHP 5, PECL odbtp >= 1.1.1)
mssql_select_db — MS SQL データベースを選択する
説明
bool mssql_select_db
( string $database_name
[, resource $link_identifier
] )
mssql_select_db() は、指定したリンク ID が指すサーバの 現在アクティブなデータベースを設定します。
以降の mssql_query() のコールは アクティブなデータベースに対して行われます。
パラメータ
- database_name
-
The database name.
スペースやハイフン("-")、あるいはその他の例外文字を含むデータベース名を エスケープするには、下の例で示すようにデータベース名をブラケットで囲む 必要があります。この手法は、データベースの名前に予約語(たとえば primary)が含まれている場合にも同様に使用する必要があります。
- link_identifier
-
mssql_connect() あるいは mssql_pconnect() が返す MS SQL リンク ID。
リンク ID が指定されない場合、最後にオープンされたリンクが仮定されます。 リンクがオープンされない場合、関数は mssql_connect() がコールされた場合と同様に リンクを確立し、これを使用しようとします。
返り値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
例
例1 mssql_select_db() の例
<?php
// MSSQL へのリンクを作成します
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
// データベース 'php' を選択します
mssql_select_db('php', $link);
?>
参考
- mssql_connect() - MS SQL サーバ接続をオープンする
- mssql_pconnect() - 持続的 MS SQL 接続をオープンする
- mssql_query() - MS SQL クエリを送る
mssql_select_db
oyoboy
23-Sep-2008 05:00
23-Sep-2008 05:00
edoceo
20-Aug-2008 06:59
20-Aug-2008 06: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-Feb-2008 03:15
10-Feb-2008 03: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.
