Impossible de se connecter à partir de PHP Azure vers SQL Server Azure en utilisant PHP avec Codeigniter

J'essaie de me connecter à partir d'une application php (en utilisant codeigniter 3) à une database MSSQL.

Comme l'installation PHP Azure ne supporte pas MSSQL, seules les connections ODBC (je me request pourquoi) mon paramètre de connection ressemble à ceci: (nom d'hôte, nom d'user, database et passwords dans cet exemple surchargé avec xxxxx, ddddd, uuuuu, ppppp)

$db['default'] = array( 'dsn' => @$_SERVER['SQLAZURECONNSTR_ddddd'], 'hostname' => 'Driver={SQL Server};tcp:xxxxx.database.windows.net,1433;Database=ddddd', 'username' => 'uuuuuu', 'password' => 'pppppp', 'database' => 'ddddd', 'dbdriver' => 'odbc', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => TRUE, 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'autoinit' => TRUE, 'ssortingcton' => FALSE, 'failover' => array(), 'save_queries' => TRUE ); 

Mais je reçois l'erreur suivante:

Message: odbc_connect (): Erreur SQL: [Microsoft] [Gestionnaire de pilote ODBC] Données> nom de la source introuvable et aucun pilote par défaut spécifié, état SQL IM002 dans> SQLConnect

Nom de file: odbc / odbc_driver.php

J'aurais supposé que le pilote azuree php odbc serait correctement configuré pour se connecter à sa database mssql liée. – Mais il me manque manifestement quelque chose.

Par défaut, l'environnement Azure n'installe pas l'extension php_mssql.dll , il installe plutôt php_sqlsrv.dll .

Donc, pour se connecter à SQL Server, nous pouvons définir 'dbdriver' sur 'sqlsrv' .

Le paramètre dans l'application \ config \ database.php devrait être comme:

 'hostname' => '<server_name>.database.windows.net,1433', 'username' => '<username>', 'password' => '<password>', 'database' => '<database>', 'dbdriver' => 'sqlsrv', 'pconnect' => FALSE, 

Pour utiliser le pilote odbc pour se connecter à SQL Server, il suffit de définir 'hostname' sur une string de connection odbc correcte. Nous pouvons find la string de connection dans le portail Azure.

J'ai essayé de reproduire votre problème, il semble que vous définissiez une valeur incorrecte dans 'dsn' . Dans mon test, je l'ai mis comme une string vide et cela fonctionne pour moi.