CakePHP: erreur lors de l'utilisation de la source de données mssql

C'est la première fois que j'utilise ms sql avec cakephp. D'habitude j'utilise mysql. J'ai modifié mon file database.php:

class DATABASE_CONFIG { var $default = array( 'driver' => 'mssql', 'persistent' => false, 'host' => 'jura', 'login' => 'sa', 'password' => '********', 'database' => 'clientportal', 'prefix' => '', ); var $test = array( 'driver' => 'mssql', 'persistent' => false, 'host' => 'jura', 'login' => 'sa', 'password' => '********', 'database' => 'clientportal', 'prefix' => '', ); } 

Cependant quand je regarde la page d'index j'ai cette erreur:

 PHP SQL Server interface is not installed, cannot continue. For troubleshooting information, see http://php.net/mssql/ Fatal error: Call to undefined function mssql_min_message_severity() in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\clientportaladmin\cake\libs\model\datasources\dbo\dbo_mssql.php on line 123 

Il vient de ce constructor dans le file dbo_mssql.php:

 function __construct($config, $autoConnect = true) { if ($autoConnect) { if (!function_exists('mssql_min_message_severity')) { sortinggger_error(__("PHP SQL Server interface is not installed, cannot continue. For troubleshooting information, see http://php.net/mssql/", true), E_USER_WARNING); } mssql_min_message_severity(15); mssql_min_error_severity(2); } return parent::__construct($config, $autoConnect); } 

J'ai l'extension mssql dans le file phi ini

 extension=php_mssql.dll 

J'ai beaucoup utilisé les bases de données mssql avec PHP sur mon installation mais je me request si c'est parce que le file ini dans mon directory php est le file php.ini s'appelle php.ini-development et php.ini-production mais j'utilise en fait un php Fichier .ini assis à la racine de C:

Est-ce que quelqu'un a déjà eu affaire à ça? Ou quelqu'un sait ce que je dois faire? En utilisant W7 btw.

Jonesy

Vous ne pouvez pas utiliser extension = php_mssql.dll dans les versions de php 5.3 *.
Vous devez utiliser le pilote MSSQL pour php
Pilote MSSQL

Ouvrez php.ini, ajoutez simplement cette ligne
extension = php_sqlsrv_53_ts_vc9.dll

utilisez les files d'extensions appropriés en fonction de votre version de PHP, que ce soit en security ou non, quelle était la version de Visual C ++ pour build votre installation PHP.

php_sqlsrv_53_ts_vc9.dll: par exemple ce pilote est pour PHP version 5.3 qui est thread-safe et build en utilisant Visual C ++ 9, vous devez également vous assurer que vous avez php.dll approprié dans le directory d'installation php comme php5ts.dll pour la version thread safe de PHP 5 .xx

J'utilise les pilotes SQLSRV et la source de données dbo_sqlsrv.php correspondante pour CakePHP.

le DATABASE_CONFIG ressemble à ceci

 var $default = array( 'driver' => 'sqlsrv', 'connect' => 'sqlsrv', 'persistent' => false, 'host' => 'tcp:NAUFRAGADOS', 'login' => 'sa', 'password' => '********', 'database' => 'geotest', 'prefix' => 'cake_', ); 

Notez le 'tcp:' dans la définition de l'hôte. C'est ce que je trébuchais jusqu'à ce que je l'ai bien

Quelle est la version de CakePHP que vous utilisez?

Une autre chose, s'il vous plaît vérifier l'extension à http: //localhost/phpinfo.php .

Vous devriez find les extensions activées et vues par le server.

Le problème que vous avez est en deux parties. Tout d'abord, comme d'autres l'ont fait remarquer, vous utilisez PHP 5.3 qui n'a pas d'extension PHP mssql. Vous devez utiliser les pilotes Sqlsrv, mettre à jour le file php.ini et tester que vous pouvez vous connecter à SQL Server à l'aide des pilotes sqlsrv.

Le deuxième problème que vous avez alors est d'get CakePHP pour utiliser les pilotes sqlsrv. Selon la version de CakePHP que vous avez, vous devrez peut-être installer le pilote de database sqlsrv séparé. J'utilise toujours CakePHP 1.2 et je crois certainement aussi dans CakePHP 1.3 que vous devez installer les pilotes de database sqlsrv séparément. Je ne sais pas s'ils ont déjà inclus les pilotes sqlsrv dans CakePHP 2.

Il existe une source officielle pour les sources de données CakePHP v1.3 + qui inclut une source de données sqlsrv .

J'obtiens la même erreur sur le server en utilisant le plugin migrations:

http://cakedc.com/eng/pierre_martin/2010/02/05/cakephp-migrations-plugin-easily-version-and-deploy-whole-applications

il fonctionne localement, et le site lui-même peut accéder à la database MS SQL sans problèmes. C'est juste les commands de migration de gâteau de command line qui donnent cette erreur. Je suis bloqué avec la configuration de PHP sur le server. Ce serait vraiment pratique d'utiliser ce plugin, mais je ne sais pas par où commencer à chercher ou peaufiner pour suivre cela, mais je me request si c'est le même problème sous-jacent?