Zend Framework 2 Microsoft SQL Server 2008数据库连接

时间:2012-09-24 09:26:40

标签: sql-server zend-framework2 connection

我试用了Zend Framework 2骨架应用程序,并且它的工作正常 Zend Server 5.6(PHP版本5.4.0 apache 2.2.21 MYSQL 5.0.10)。但我希望Zend Framework 2与MS SQL 2008连接。我尝试了以下但它不起作用并抛出异常 “将无效参数传递给sqlsrv_execute。”

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

上面的db数组有什么问题?请用正确的连接字符串建议我

仅供参考:

我已经测试了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));
}
*/

2 个答案:

答案 0 :(得分:1)

由于你没有在技术上“回答”你自己的问题,我会为你做的。

尝试这些连接参数,它们可能使用PDO:

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

答案 1 :(得分: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 server:

  

延长= php_sqlsrv_53_ts.dll