web-dev-qa-db-fra.com

SQLSRV PHP for SQL Server for n'est pas une application Win32 valide

Voici ma configuration

  • Windows Server 2008 R2 64 bits
  • Apache 2.4.4 64 bits
  • PHP 5.4.15 32 bits (64 bits est encore expérimental), thread-safe, compilateur VC9
  • Microsoft SQL Server 2012 Native Client 64 bits
  • Microsoft Visual C++ 2010 x86 et x64

J'ai besoin de charger la bibliothèque SQLSRV de Microsoft. 

J'ai ajouté 'extension = php_sqlsrv_54_ts.dll' à php.ini et copié 'php_sqlsrv_54_ts.dll' dans le dossier ext où PHP est installé.

Lorsque je redémarre Apache, l'erreur suivante s'affiche dans mon journal des erreurs php, et SQLSRV n'est pas répertorié dans phpinfo.

PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\php5\ext\php_sqlsrv_54_ts.dll' - %1 is not a valid Win32 application.

Où vais-je mal?

EDIT À des fins de test, je viens d'installer PHP 5.5.10 64 bits et VC 2012, mais l'erreur reste la même :(

13
iltdev

Je ne sais pas si cela aide mais j'ai utilisé tous les 32 bits sur mon système Windows 7 64 bits

Voici ce que j'ai utilisé et je peux utiliser SQL Server

httpd-2.4.6-win32-VC9 //Apache 2.4
php-5.4.9-Win32-VC9-x86 //php5

à l'intérieur si mon dossier \php\ j'ai

  • php5Apache2_4.dll

À l'intérieur \php\ext\ j'ai

  • php_pdo_sqlsrv_54_nts.dll 
  • php_pdo_sqlsrv_54_ts.dll

J'ai ajouté ceci à la fin de php.ini

[PHP_SQLSRV]
extension=php_sqlsrv_54_ts.dll
[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_54_ts.dll

Je me souviens que c’était une douleur juste de le faire fonctionner mais c’est le cas maintenant. Si je me souviens plus je modifierai ma réponse

METTRE À JOUR:

Je pense que ce blog a l'air familier de la façon dont je l'ai fait fonctionner 

http://robsphp.blogspot.co.uk/2012/09/how-to-install-microsofts-sql-server.html

11
AdRock

J'ai eu le même problème. Exécuter un ancien 5.6 php x64 qui nécessitait l'interface à cause des restrictions RAM strictes données par 32 bits.

La solution était dans le pilote non officiel offert par Rob.

https://robsphp.blogspot.nl/2012/06/unofficial-Microsoft-sql-server-driver.html

Je l'ai testé et il fonctionne correctement avec 5.6.33 x64

3
Tschallacka

actuellement, Microsoft sqldriver ne fonctionne que pour la version php 32 bits . Voici la procédure à suivre pour installer les pilotes SQL.

2
anil gangwal

Sqlsrv fonctionne avec php 32 bits Non Thread Safe avec le client natif SQL.

0
lisandro