Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

PHP IIS7 MSSQL Chiamata alla funzione non definita sqlsrv_connect

Ho avuto questo problema da solo. Alla fine ho risolto, quindi ho pensato di condividere.

Il problema era che, sebbene avessi installato la dll sqlsrv (copiata nella mia cartella php/ext), e L'ho aggiunto nel mio php.ini, in IIS, era 'disabilitato' .

Ecco alcune istruzioni passo passo, nel caso qualcuno abbia di nuovo lo stesso problema. (O per riferimento futuro per me :))

  1. Scarica (e installa) i driver di SQL Server (.dll)

    • Installali eseguendo il file .exe e digitando il percorso della cartella delle estensioni php quando ti chiede dove decomprimerli.
      • Per trovare la directory dell'estensione corrente, eseguire (cmd.exe) php -i | more e cerca la riga extension_dir . (Per me era alla quarta edizione di more ). In alternativa, crea un semplice file php contenente solo <?php phpinfo(); ?> ed eseguilo nel browser. Questo darà le stesse informazioni, ma in un formato molto più facile da leggere.
  2. Aggiungi l'estensione al tuo php.ini

    • Per trovare il php.ini corretto, esegui php -i | more di nuovo, cercando Loaded Configuration File o controlla di nuovo quel semplice script php (ti consiglio vivamente di farlo - ti farà risparmiare tempo e fatica). Il percorso che trovi lì è il file che devi modificare.
    • Aggiungi le seguenti righe al tuo php.ini e salvalo:

      [PHP_SQLSRV] extention=php_sqlsrv_56_nts.dll

  3. Abilita l'estensione in Gestione IIS

    • Nel menu di avvio, digita IIS Manager e premi Invio.
    • Fai clic sul nome del tuo server nella barra laterale sinistra
    • Fai clic su PHP Manager
    • Sotto PHP Extensions , fai clic su Enable or Disable an Extension .
    • Se la tua estensione non è in Enabled , guarda sotto Disabled per questo. Quando lo trovi, fai clic destro su di esso e fai clic su Enable nel menu contestuale visualizzato.
  4. Prova per assicurarti che abbia funzionato

    • Apri quel phpinfo() pagina che hai creato (l'hai fatto, vero?) e guarda sotto Registered PHP Streams . Se vedi sqlsrv in quella lista, sei a posto!