«Вызов неопределенной функции sqlsrv_connect()» при попытке подключиться к Azure DB с PHP

#php #azure #azure-sql-database

#php #azure #azure-sql-database

Вопрос:

Я пытаюсь подключиться с php к Azure DB с помощью

 $connectionInfo = array("UID" => "xxx@xxx", "pwd" => "xxx", "Database" => "xxx");
$serverName = "tcp:xxx.database.windows.net,1433";
$conn = sqlsrv_connect($serverName, $connectionInfo);
 

Но это дает мне

Неустранимая ошибка: вызов неопределенной функции sqlsrv_connect() в C:wampwww…index.php в строке 19

Комментарии:

1. Почему бы сначала не сделать быстрый поиск в Google и не найти такие вещи, как это или это?

2. Хорошо … спасибо. Тем не менее, теперь он говорит «Фатальная ошибка: вызов неопределенной функции sqlsrv_connect() в …», очевидно, в моем PHP отсутствует какое-то расширение.

3. Да, вам нужно расширение SQL server . В Windows добавить ее очень просто, обычно вам просто нужно включить соответствующую DLL в php.ini (см. Главу «установка»).

4. Спасибо! Установил его, кажется, все в порядке с подключением! 🙂 Должен ли я теперь работать с ним как с обычной базой данных MySQL?

Ответ №1:

сначала вы должны использовать собственный драйвер SQL Server для php, затем вы можете сделать что-то вроде:

 $serverName = "tcp:sample.database.windows.net, 1433";

$connectionOptions = array("Database" => "sampleInit", 

                           "UID" => "sampleUsr@sample",

                           "PWD" => "samplePass",

                           "MultipleActiveResultSets" => false);

$conn = sqlsrv_connect($serverName, $connectionOptions);

if($conn === false)

{

     die(print_r(sqlsrv_errors(), true));

}
 

Вы можете прочитать больше о PHP и SQL Azure в следующем сообщении в блоге:
http://blogs.msdn.com/b/brian_swan/archive/2010/02/12/getting-started-with-php-and-sql-azure.aspx

Комментарии:

1. Спасибо! Установил его, кажется, все в порядке с подключением! 🙂 Должен ли я теперь работать с ним как с обычной базой данных MySQL?

2. Ну, теперь вы работаете как обычная база данных SQL Server 🙂 Есть некоторые (может быть больше) различия между языками SQL в SQL Server и MySQL. Например, в SQL server нет ключевого слова LIMIT . Но в целом — да, отныне вы работаете как с обычной базой данных. Я предлагаю вам использовать какой-то уровень абстракции БД, такой как adodb или любой другой.

Ответ №2:

Я добавил эту dll в папку ext /, а затем добавил extension=php_sqlsrv.dll в php.ini в папке php7/.