Page 1 sur 1

Pb connection informix via ODBC

Posté : 26 juil. 2006, 15:38
par rstassart
Bonjour à tous,

Je travaille dans un hopital ou j'ai un intranet en php (j'utilise easyphp 1.7). Il y a également un système unix (ou plutot sinix : siemens unix) dans lequel nous avons une base de donnée informix qui contient la liste des admissions, données des patients, etc...

Je dois créer une page dans mon intranet qui dois accéder à la base de donnée informix.

J'ai donc crée une ODBC nomée informix_odbc à partir de mon serveur intranet pour joindre informix. Cette ODBC semble bien fonctionner si je fait un "Test connection" dans le gestionnaire d'ODBC il me dit "Test connection was successful".

Pour tester la connection via les pages intranet j'ai crée une page php avec ce code :
<?
$connectionstring = odbc_connect("informix_odbc", "usr", "pwd"); 
if (!$connectionstring)
  {exit("Connection Failed: " . $connectionstring);}

odbc_close($connectionstring);
?>
Quand je lance ma page, il ne se passe rien même si je laisse tourner la page pendant 1 heure. Je ne recois aucun message. et la page se charge indéfiniment.


J'ai aussi essayer de créer une BD Acces juste pour tester le code php avec ODBC :
<?
$connectionstring = odbc_connect("testodbc", "", ""); 
$Query = "SELECT * FROM TableTest"; 
$queryexe = odbc_do($connectionstring, $Query); 
odbc_result_all($queryexe, "BORDER=1"); 
odbc_close($connectionstring);
?>
La par contre ca fonctionne nickel, il m'affiche le contenu de ma table... Mais ca ne m'aide pas du tout!

Je suis assez bloqué car je vois pas trop d'ou peut venir mon problème. Je suis embetté car ca fait 2 jours que je cherche sur le net sans succès :(

Mon ODBC semble fonctionner, Mon code php fonctionne bien avec une ODBC acces.

Pour se connecter a une ODBC avec PHP, le code est le meme quelque soit le type de BD no?

Si vous savez m'aider se serait VRAIMENT TRES BIEN pour moi :-0. Toutes les idées sont bienvenues...

Merci d'avance...

Posté : 26 juil. 2006, 15:47
par zeus
modération : dans les réglements du forum, il y a ces deux points :
  1. Veuillez utiliser un titre clair et précis qui correspond bien à votre problème.
    Les titres contenant "HELP", "Aidez-moi !" n'apportent rien à la compréhension de votre problème. De même, nous savons déjà par votre message que vous avez besoin d'aide.
  2. Veuillez prendre la peine de créer un message clair et concis.
    N'hésitez pas à utiliser les balises

    Code : Tout sélectionner

    [/b] et [b][php][/b] afin de rendre l'affichage de votre code lisible et compréhensible par tous. De plus, prenez le temps de bien rédiger votre message afin d'y inclure le plus de détails possibles (message d’erreur obtenus, configuration, …). Les messages du style "ça marche pas" n'aident d'aucune façon la résolution du problème. Question précise, réponse précise ! L'inverse est aussi valable : Question de mer**, réponse de mer**.[/list][/quote] [color=darkred] J'ai modifié le titre et inséré les balises mais merci d'y prendre garre[/color]

Posté : 27 juil. 2006, 08:35
par rstassart
Mille pardon...

C promi j'le frai plu...

Mais j'chui tjs autant bloqué.

:oops: SNIF!

Posté : 27 juil. 2006, 19:45
par Cyrano
Ajoute des tests sur tes lignes de code. Par exemple, au lieu de
<?
$connectionstring = odbc_connect("testodbc", "", "");
$Query = "SELECT * FROM TableTest";
$queryexe = odbc_do($connectionstring, $Query); 
//...
?>
On sait que, dixit la doc, odbc_connect() retourne FALSE en cas d'erreur, donc essaye comme ceci:
<?php
$connectionstring = odbc_connect("testodbc", "", "");
if(false !== $connexionstring)
{
    $Query = "SELECT * FROM TableTest";
    $queryexe = odbc_do($connectionstring, $Query); 
    //...
}
else
{
    echo("<p>Erreur : la connexion a échoué</p>\n");
}
?>
Procède de cette manière pour cerner petit à petit l'endroit où ton code plante.

Posté : 31 juil. 2006, 08:42
par rstassart
Je viens d'essayer mais manifestement, il bloque sur la ligne :
 
<?
$connectionstring = odbc_connect("glainisatcp_odbc", "", ""); 
?>
car si je ne laisse que ca comme code :
<?
echo "salut";
$connectionstring = odbc_connect("glainisatcp_odbc", "", ""); 
odbc_close($connectionstring);
?>
La page ne s'affiche déja jamais... Alors que si je fais une faute dans le nom de l'odbc du style :
<?
echo "salut";
$connectionstring = odbc_connect("odbc_inexistante", "", ""); 
odbc_close($connectionstring);
?>
la je recois ce message d'erreur :

Warning: odbc_connect(): SQL error: [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié, SQL state IM002 in SQLConnect

Ce qui montre bien que il bloque sur cette ligne... Mais je ne vois pas d'ou ca peut venir puisque mon odbc semble bien fonctionner...

Posté : 04 août 2006, 13:05
par rstassart
up plz...

Posté : 10 août 2006, 11:10
par rstassart
UP UP UP :-{

Allez plz aidez moi.

Posté : 10 août 2006, 11:13
par zeus
N'ayant jamais fait cette opération, je ne suis pas sur de pouvoir t'aider mais je trouve que la chaine de connection est bizarre.

Sur php.net, les chaines ressemblent plus à ça :
   $db_host        = "server.mynetwork";
   $db_user        = "dbuser";
   $db_pass        = "dbpass";
   $dsn =        "DRIVER={MySQL ODBC 3.51 Driver};" .
           "CommLinks=tcpip(Host=$db_host);" .
           "DatabaseName=$db_name;" .
           "uid=$db_user; pwd=$db_pass";

   odbc_connect($dsn, $db_user, $db_pass);