2013-04-05 4 views
4

Nous essayons de créer une connexion avec notre base de données SQL par ODBC en PHP.PHP PDO connexion ODBC

Voici notre script actuel:

$cnx = new PDO("odbc:Driver={EFR};Server=localhost;Port:7004;Database=EFR;Uid=LcLfVJFLTKTCEHRO;Pwd=*********;"); 

Le pilote travaille dans QlikView qui se connecte également à cette base de données.

Le pilote est actuellement trouvé par PHP, mais nous pensons qu'il ne peut tout simplement pas se connecter.

PHP retourne l'erreur suivante:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[IM001] SQLDriverConnect: 0 No transaction control system' in C:\Program Files (x86)\EasyPHP-12.1\www\index.php:2 
Stack trace: 
#0 C:\Program Files (x86)\EasyPHP-12.1\www\index.php(2): PDO->__construct('odbc:Driver={EF...') 
#1 {main} thrown in C:\Program Files (x86)\EasyPHP-12.1\www\index.php on line 2 

Nous espérons que quelqu'un peut nous aider à ce problème.

+0

Essayez ce que la chaîne de connexion: '$ CNX = new PDO (" odbc: Driver = {EFR}; Serveur = localhost; Port: 7004; Base de données = EFR ", 'LcLfVJFLTKTCEHRO', '*********');' –

Répondre

5

si vous avez déjà l'ODBC défini et un mot de passe stocké, vous pouvez simplement connecter avec

$conn = new PDO("odbc:DSN_NAME") 

où DSN_NAME est le nom réel de votre source de données ODBC, que ce soit MySQL, SQL Server ou DB2.

Vous pouvez tester votre connexion avec les éléments suivants:

try{ 
    $conn = new PDO ("odbc:DSN_NAME"); 

    die(json_encode(array('outcome' => true))); 
} 
catch(PDOException $ex){ 
    die(json_encode(array('outcome' => false, 'message' => 'Unable to connect'))); 
} 
0

essayer d'ajouter DSN sur le système à la place de l'utilisateur