2017-09-25 9 views
0

J'essaie de connecter une application Zend (version 1.11.11) à un serveur mssql via pdo_dblib (en utilisant PHP version 7.0.22). Je sais que mon installation PHP a pdo_dblib car l'exécution print(extension_loaded('pdo_dblib')); dans le terminal renvoie 1. Dans le fichier .ini je:Zend ne charge pas pdo_dblib

resources.db.adapter = "pdo_mssql" 
resources.db.params.pdoType = "pdo_dblib" 

Quand je lance l'application avec un débogueur, la valeur de l'instruction $a = extension_loaded('pdo_dblib'); est false. Par conséquent, ne contient pas pdo_dblib (bien sûr), ce qui force l'application à lancer une exception.

Est-ce que quelqu'un sait pourquoi ce problème se produit, et comment le réparer?

+0

http://php.net/manual/fr/pdo.installation.php avez-vous activé l'extension? Sur Linux, ce serait quelque chose comme "php_pdo_mssql.so" – bassxzero

Répondre

0

La clé est pas Zend, mais un détail subtil de vos tests:

  • course print(extension_loaded('pdo_dblib'));dans le terminal retourne 1
  • quand je lance l'application avec un débogueur, la valeur de la déclaration $a = extension_loaded('pdo_dblib'); est false

PHP sur le terminal n'est pas garantie avoir la même configuration, ou même être la même version, que PHP sur le serveur web de la même machine.

Vous aurez besoin de regarder dans votre configuration d'hébergement pour savoir comment activer l'extension dans le php.ini (ou équivalent) dans la copie de PHP du serveur web. La sortie de phpinfo()exécuté dans votre application, pas le terminal, peut aider.