2012-09-24 29 views
10

Wypróbowałem aplikację szkieletową Zend Framework 2 i jej działającą grzywnę w Zend Server 5.6 (wersja PHP 5.4.0 apache 2.2.21 MYSQL 5.0.10). Ale chcę Zend Framework 2, aby połączyć się z MS SQL 2008. Próbowałem następujących ale to nie działa i rzuca wyjątek „Nieprawidłowy parametr został przekazany do sqlsrv_execute.”Zend Framework 2 Microsoft SQL Server 2008 Połączenie DB

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

Co złego z powyższej tablicy db ? proszę sugerować mnie sznurkiem prawidłowe podłączenie

FYI:

Ja testowałem PHP 5.4 i MS SQL 2008 połączenia i działa dobrze, co następuje połączenie zostało nawiązane pomyślnie.

/* 
$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

Wreszcie mam to działa. 'driver' => 'pdo', 'dsn' => 'sqlsrv: database = payroll; Server = testserver \ test', – user1692442

+5

Powinieneś być w stanie opublikować to jako odpowiedź poniżej i zaakceptować ją. Jest to dopuszczalne. – ficuscr

+5

Proszę, zrób to, zaśmiecasz go jako temat bez odpowiedzi. – nimdil

Odpowiedz

1

Jak technicznie "odpowiedział" na własne pytanie, zrobię to za Ciebie.

Spróbuj parametry połączenia, mogą one pracują przy użyciu PDO:

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

W pliku global.php dodaj poniżej szczegółowo połączenia:

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

Aby dodać sterownik sqlsrv pobrać z adresu URL : http://www.microsoft.com/en-us/download/details.aspx?id=20098

Dodaj rozszerzenie w pliku php ini, a następnie zrestartuj serwer apache:

extension = php_sqlsrv_53_ts.dll

Powiązane problemy