Подключение к нескольким базам данных с помощью sqlsrv_connect - PullRequest
0 голосов
/ 07 мая 2011

Может ли кто-нибудь мне помочь или дать совет по этой проблеме с подключением, которая у меня возникла. В настоящее время я могу подключиться к одной базе данных одновременно. Дело в том, что данные, которые я запрашиваю, взяты с нескольких веб-сайтов (все начинаются с 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%"?

Если что-то из этого вообще неясно, пожалуйста, дайте мне знать! Любой совет будет высоко ценится!

Приветствия

Neil

1 Ответ

0 голосов
/ 07 мая 2011

Согласно документации PHP для 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. Хорошей практикой является создание некоторого легкого класса для хранения не только ресурса соединения, но и других вещей, например, последней ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...