2012-09-24 47 views
10

我嘗試了Zend Framework 2骨架應用程序,並且它在 Zend Server 5.6(PHP版本5.4.0 apache 2.2.21 MYSQL 5.0.10)中正常工作。但我想Zend框架2與MS SQL 2008連接我嘗試以下,但它不工作,並拋出異常 「無效的參數傳遞給sqlsrv_execute。」Zend Framework 2 Microsoft SQL Server 2008數據庫連接

'db' => array(
    'driver' => 'sqlsrv', 
    'hostname' => 'testserver\test', 
    'Database' => 'payroll', 
    'UID'  => 'sa', 
    'PWD'  => '123456' 
), 

什麼是錯以上分貝陣列?請建議我用正確的連接字符串

FYI:

我已經測試PHP 5.4和MS SQL 2008的連接,它工作正常,下面的連接成功建立。

/* 
$serverName = "testserver\test"; //serverName\instanceName 
$connectionInfo = array("Database"=>"payroll", "UID"=>"sa", "PWD"=>"123456"); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 
if($conn) { 
    echo "---------- Connection established --------------------.<br />";  
    $sql = "select * from users"; 
    $stmt = sqlsrv_query($conn, $sql); 
    while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) { 
      echo $row['id'].", ".$row['username']."<br />"; 
    }  
} else{ 
    echo "Connection could not be established.<br />"; 
    die(print_r(sqlsrv_errors(), true)); 
} 
*/ 
+0

最後我得到了它的工作。 'driver'=>'pdo', 'dsn'=>'sqlsrv:database = payroll; Server = testserver \ test', – user1692442

+5

您應該可以在下面發佈該答案並接受它。這是可以接受的。 – ficuscr

+5

請做到這一點,你把它當作沒有答案的話題。 – nimdil

回答

1

由於您沒有在技術上「回答」您自己的問題,我會爲您做。

嘗試這些連接參數,他們可能工作使用PDO:

'db' => array(
    'driver' => 'pdo', 
    'dsn'  => 'sqlsrv:database=payroll;Server=testserver\test', 
    'username' => 'sa', 
    'password' => '123456' 
), 
0

在你global.php文件中添加下面的連接細節:

'db' => array(
     'driver' => 'Sqlsrv', 
     'hostname' => 'SERVERNAME', 
     'Database' => 'DBNAME', 
     'uid' => 'username', 
     'pwd' => 'password', 
) 

要添加SQLSRV驅動程序,從網址下載:http://www.microsoft.com/en-us/download/details.aspx?id=20098

在您的php ini文件中添加擴展名,然後重新啓動apache服務器:

延長= php_sqlsrv_53_ts.dll

相關問題