2015-10-04 2 views
7

J'ai cherché toute la journée pour trouver une solution pour sqlsrv dll sur php 7 VC14 x64 Thread Safe et je n'ai pas trouvé de solution. Quelqu'un a résolu ce problème:php 7 impossible d'initialiser sqlsrv

[04-Oct-2015 19:48:05 UTC] PHP Warning: PHP Startup: pdo_sqlsrv: Unable to initialize module 
Module compiled with module API=20131226 
PHP compiled with module API=20141001 
These options need to match 
in Unknown on line 0 

Voici mes php7 informations RC4:

System Windows NT 6.0 build 6002 (Windows Server 2008 Standard Edition Service Pack 2) AMD64 
Build Date Sep 29 2015 17:15:28 
Compiler MSVC14 (Visual C++ 2015) 
Architecture x64 

Répondre

12

sqlsrv est pas prêt pour PHP7 encore, mais ce n'est pas vrai, il n'a pas été libéré depuis 2012. Dernière version est à partir de mai 2015. Maintainer est Microsoft et la version pour PHP7 est prévue au début de l'année prochaine.

https://github.com/Azure/msphpsql/issues/58

Mise à jour:

pilote est disponible pour PHP 7.1 jusqu'à la version même pour Linux aujourd'hui (Mars 2017).

https://github.com/Microsoft/msphpsql

+0

Bonne trouvaille, je regardais l'histoire des extensions PECL communiqués ... –

+0

Cette réponse vous est à jour? – reformed

+0

Oui c'est. Cette réponse a deux ans. Vous pouvez utiliser sqlsrv driver jusqu'à PHP 7.1 aujourd'hui (même sur Linux). – kba

1

Pour mémoire, le lien direct vers les bibliothèques de serveur SQL est ici

sqlsrvr for php 7

est la version 32 et 64 bits aussi bien pour ts et nts

4

Pour l'avenir référence (testé sous Windows 7 avec Xampp et PHP 7.0.13):

  1. Téléchargez et installez les pilotes ODBC ici: https://www.microsoft.com/en-US/download/details.aspx?id=36434

  2. Téléchargez la DLL ici (les deux versions 7.0. et 7.1.can trouver): https://github.com/Microsoft/msphpsql/releases

  3. Ouvrez le fichier "php.ini" et cherchez la ligne "extension_dir". Cela vous dira où placer les fichiers DDL. Remarque: Sur Xampp, il devrait être quelque chose comme: "C: \ xampp \ php \ ext"

enter image description here

  1. Mettez les fichiers DLL contient dans l'archive Zip dans votre répertoire d'extension. Assurez-vous de sélectionner le bon sélectionner la bonne version. Note: J'ai d'abord essayé d'utiliser la version x64, mais cela n'a pas fonctionné. Ensuite, j'ai remplacé la DLL par la version x86 et cela a finalement fonctionné.

enter image description here

  1. Retour dans votre fichier "php.ini", vous devez ajouter la ligne suivante: "extension = php_pdo_sqlsrv_7_ts.dll". Remarque: Xampp utilise la version avec bande de roulement.

enter image description here

  1. Assurez-vous de redémarrer votre service apache.

enter image description here

Exemple de code

pour les tests:

+1

Cela a fonctionné pour moi. – LautaroAngelico