Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

PHP IIS7 MSSQL Appel à la fonction indéfinie sqlsrv_connect

Je viens d'avoir ce problème moi-même. J'ai finalement réussi à le réparer, alors j'ai pensé que je partagerais.

Le problème était que, même si j'avais installé la dll sqlsrv (copiée dans mon dossier php/ext), et Je l'ai fait ajouter dans mon php.ini, dans IIS, il était "désactivé" .

Voici quelques instructions étape par étape, au cas où quelqu'un aurait à nouveau ce même problème. (Ou pour référence future pour moi :))

  1. Télécharger (et installer) les pilotes SQL Server (.dll)

    • Installez-les en exécutant le .exe et en tapant le chemin de votre dossier d'extensions php lorsqu'il vous demande où les décompresser.
      • Pour trouver votre répertoire d'extension actuel, exécutez (cmd.exe) php -i | more , et recherchez la ligne extension_dir . (Pour moi, c'était à la quatrième pression de more ). Alternativement, créez un simple fichier php contenant uniquement <?php phpinfo(); ?> , et exécutez-le dans le navigateur. Cela donnera les mêmes informations, mais dans un format beaucoup plus facile à lire.
  2. Ajoutez l'extension à votre php.ini

    • Pour trouver le bon php.ini, exécutez php -i | more encore une fois, à la recherche de Loaded Configuration File , ou vérifiez à nouveau ce simple script php (je vous recommande fortement de le faire - cela vous fera gagner du temps et des efforts). Le chemin que vous y trouvez est le fichier que vous devez modifier.
    • Ajoutez les lignes suivantes à votre php.ini et enregistrez-le :

      [PHP_SQLSRV] extention=php_sqlsrv_56_nts.dll

  3. Activer l'extension dans IIS Manager

    • Dans le menu Démarrer, saisissez IIS Manager , et appuyez sur entrée.
    • Cliquez sur le nom de votre serveur dans la barre de gauche
    • Cliquez sur PHP Manager
    • Sous PHP Extensions , cliquez sur Enable or Disable an Extension .
    • Si votre extension n'est pas sous Enabled , regardez sous Disabled pour ça. Lorsque vous le trouvez, faites un clic droit dessus et cliquez sur Enable dans le menu contextuel qui s'affiche.
  4. Testez pour vous assurer que cela a fonctionné

    • Ouvrez ce phpinfo() la page que vous avez créée (vous l'avez fait, n'est-ce pas ?) et regardez sous Registered PHP Streams . Si vous voyez sqlsrv dans cette liste, vous êtes prêt !