10

我试用了 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));
}
*/
4

2 回答 2

1

由于您没有从技术上“回答”您自己的问题,我会为您解决。

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

'db' => array(
    'driver'    => 'pdo',
    'dsn'       => 'sqlsrv:database=payroll;Server=testserver\test',
    'username'  => 'sa',
    'password'  => '123456'
),
于 2014-01-28T02:22:02.547 回答
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

于 2015-06-10T11:35:27.050 回答