2011-10-31 35 views
5
連接到Azure的DB時

我試圖從PHP通過「調用未定義功能sqlsrv_connect()」 試圖從PHP

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

連接到Azure的數據庫,但它給了我

致命錯誤:調用未定義功能sqlsrv_connect()在C:\ WAMP \ WWW \的index.php上線19

+1

爲什麼不先快速Google,找到[this](http://msdn.microsoft.com/en-us/library/windowsazure/ff394110.aspx)或[this?](http:// blogs.msdn.com/b/brian_swan/archive/2010/02/12/getting-started-with-php-and-sql-azure.aspx) –

+0

好的......謝謝。但現在它說「致命錯誤:調用未定義的函數sqlsrv_connect()in ...」,顯然我的PHP缺少一些擴展。 – Roger

+2

是的,你需要[SQL服務器擴展](http://www.php.net/manual/en/book.sqlsrv.php)。在Windows上,雖然很容易添加,但通常只需要在php.ini中啓用適當的DLL(請參閱「安裝」一章)。 –

回答

8

你必須使用SQL Server native driver for php在首位,那麼你可以這樣做:

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

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

          "UID" => "[email protected]", 

          "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

+0

謝謝!安裝好了,好像連接好了! :)從現在開始,我是否和普通的MySql DB一樣使用它? – Roger

+0

那麼,從現在開始,你的確可以作爲常規SQL Server數據庫工作:) SQL Server和MySQL中的SQL語言之間有一些(可能會更多)差異。例如在SQL服務器中沒有LIMIT關鍵字。但總的來說 - 是的,從現在開始,你正在像正常的數據庫一樣工作。我建議你使用某種數據庫抽象層 - 比如adodb或其他。 – astaykov

0

我加this dll到ext /文件夾,然後添加extension=php_sqlsrv.dll在PHP7 /文件夾中的php.ini中。

相關問題