it-swarm.it

Come faccio a far funzionare l'estensione SQLSRV con PHP, poiché MSSQL è obsoleto?

Ho eseguito l'aggiornamento a PHP 5.3 e ho notato che manca php_mssql.dll. Dopo aver cercato su Google un po ', sembra che 5.3 abbia abbandonato il supporto per mssql. Quindi ho scaricato i driver da Microsoft, ma posso sembra farlo funzionare.

Sono alle finestre. Cosa devo fare dopo aver decompresso i file nella directory ext del mio PHP 5.3?

23
user187809

Citando http://php.net/manual/en/intro.mssql.php :

L'estensione MSSQL non è più disponibile su Windows con PHP 5.3 o successivo. SQLSRV, un driver alternativo per MS SQL è disponibile da Microsoft: " http://msdn.Microsoft.com/en-us/sqlserver/ff657782.aspx .

Una volta scaricato, segui le istruzioni in questa pagina:

In breve:

Inserisci il file del driver nella directory dell'estensione PHP.
Modifica il file php.ini per includere il driver. Per esempio:

extension=php_sqlsrv_53_nts_vc9.dll  

Riavviare il server Web.

Vedi anche (copiato da quella pagina)

Il manuale PHP per l'estensione SQLSRV si trova in http://php.net/manual/en/sqlsrv.installation.php e offre quanto segue per l'installazione:

L'estensione SQLSRV viene abilitata aggiungendo il file DLL appropriato alla directory dell'estensione PHP e la voce corrispondente al file php.ini. Il download di SQLSRV viene fornito con diversi file di driver. Il file del driver utilizzato dipenderà da 3 fattori: la versione PHP in uso, se si sta utilizzando PHP thread-safe o non-thread-safe e se l'installazione PHP è stata compilata con il Compilatore VC6 o VC9. Ad esempio, se si esegue PHP 5.3, si utilizza PHP non thread-safe e l'installazione PHP è stata compilata con il compilatore VC9, è necessario utilizzare il file php_sqlsrv_53_nts_vc9.dll. (È necessario utilizzare una versione non thread-safe compilata con il compilatore VC9 se si utilizza IIS come server Web). Se si esegue PHP 5.2, si utilizza PHP thread-safe e l'installazione PHP è stata compilata con il compilatore VC6, è necessario utilizzare il file php_sqlsrv_52_ts_vc6.dll.

I driver possono essere utilizzati anche con DOP .

37
Gordon

Scarica Driver Microsoft per PHP per SQL Server . Estrai i file e usa uno di:

File                             Thread Safe         VC Bulid
php_sqlsrv_53_nts_vc6.dll           No                  VC6
php_sqlsrv_53_nts_vc9.dll           No                  VC9
php_sqlsrv_53_ts_vc6.dll            Yes                 VC6
php_sqlsrv_53_ts_vc9.dll            Yes                 VC9

Puoi vedere lo stato Sicurezza thread in phpinfo ().

Aggiungi il file corretto alla tua directory ext e la seguente riga al tuo php.ini:

extension=php_sqlsrv_53_*_vc*.dll

Usa il nome file del file che hai usato.

Come già pubblicato da Gordon, questa è la nuova estensione di Microsoft e utilizza l'API sqlsrv_ * anziché mssql_ *

Aggiornamento:
Su Linux non hai i driver necessari né l'estensione SQLSERV.
Guarda Connettiti a MS SQL Server da PHP su Linux? per una discussione al riguardo.

In breve, è necessario installare FreeTDS e SÌ è necessario utilizzare le funzioni mssql_ * su linux. vedi aggiornamento 2

Per semplificare le cose a lungo termine, consiglierei di creare una classe wrapper con funzioni richieste che utilizzano l'API appropriata (sqlsrv_ * o mssql_ *) in base all'estensione caricata.

Aggiornamento 2: Non è necessario utilizzare le funzioni mssql_ * su Linux. È possibile connettersi a un server ms sql utilizzando PDO + ODBC + FreeTDS. Su Windows, il metodo più efficace per connettersi è tramite PDO + ODBC + SQL Native Il client dal momento che il driver PDO + SQLSRV può essere incredibilmente lento.

5
danishgoel