使用sqlsrv_connect连接到多个数据库

时间:2011-05-07 11:25:24

标签: php sql-server php-5.3

任何人都可以帮助我或提供有关此连接问题的建议。基本上我目前可以连接到一个数据库。问题是我查询的数据来自多个网站(全部以V1_database开头.....)。例如,我的数据库包括V1_database_newyork或V1_database_denver等。

我在Microsoft SQL Server Management Studio中创建了一个这样的查询,它从V1_database开始选择所有数据库:

SELECT name
FROM sys.databases
WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb') AND name LIKE 'V1_database%'

我当前连接到我的某个数据库的代码如下(这很好用):

       <?php
        /*data base connection */

        $serverName = ".\SQLEXPRESS";
        $connectionOptions = array("Database"=>"V1_database_newyork",
         "UID"=>"username",
         "PWD" => "password");

        /* Connect using Windows Authentication */       
        $conn = sqlsrv_connect($serverName, $connectionOptions);

        /* Check whether connnection is established */
        if($conn === false)
        {
            die(print_r(sqlsrv_errors(), true));
        }


/* Close the connection. */
sqlsrv_close( $conn);
?>

任何人都可以帮我调整此查询,以便连接字符串允许我使用“V1_database%”查询任何数据库吗?

如果其中任何一项都不清楚,请告诉我!任何建议将不胜感激!

干杯,

尼尔

1 个答案:

答案 0 :(得分:0)

根据PHP documentation on mssql_connect

resource mssql_connect ([ string $servername [, string $username [, string $password [, bool $new_link ]]]] )

必须在所有查询中使用返回资源,因此请使用以下命令连接到MSSQL:

$res = mssql_connect ([ string $servername [, string $username [, string $password [, bool $new_link ]]]] )

并在所有查询中使用$res

mssql_query ( string $query [, resource $link_identifier [, int $batch_size = 0 ]] )

如果您需要连接到两个数据库,请使用$res1$res2。 一个好的做法是使一些light类不仅存储连接资源,还存储其他内容,如上一个错误。