2009-10-29 5 views
0

J'ai mis en place un site web utilisant PHP pour dialoguer avec une base de données Sybase (déjà utilisée pour une application interne) via une connexion ODBC, afin que les utilisateurs sur le terrain puissent accéder à -house db. C'était sur un serveur NT 2003, et tout a bien fonctionné.PHP ODBC connect ne se connecte pas à Sybase db

Puis j'ai mis en place un site similaire sur une machine XP Pro (cette fois, par moi-même), et alors que le site web est accessible, et la programmation PHP fonctionne, les pages PHP ne peuvent pas accéder au db. Je n'ai pas d'erreur, j'ai vérifié phpinfo entre les deux sites (travaillant et non-travail) et n'ai trouvé aucune idée. Convaincu que la connexion à la base de données via ODBC ne fonctionne pas, la configuration sur un XP Pro devrait-elle être différente de celle d'une machine NT 2003? ODBC est configuré de la même manière sur les deux machines.

<?php 
$Page_Name = "apptlist1.php"; 
import_request_variables('gpc'); 

$db_host = "wintermlocal"; 
$db_server_name = "winpest"; 
$db_name = "windata.db"; 
$db_file = "c:\data\windata.db"; 
$db_conn_name = "php_script"; 
$db_user = "dba"; 
$db_pass = "sql"; 
//================================================================ 
$connect_string = "Driver={Adaptive Server Anywhere 7.0};" 
    ."CommLinks=tcpip(Host=$db_host);" 
    ."ServerName=$db_server_name;" 
    ."DatabaseName=$db_name;" 
    ."DatabaseFile=$db_file;" 
    ."ConnectionName=$db_conn_name;" 
    ."uid=$db_user;pwd=$db_pass"; 
//================================================================ 

$connect = odbc_connect($connect_string,'',''); 
?> 

Warning: odbc_connect() [function.odbc-connect]:

SQL error: [Microsoft][ODBC Driver Manager]

Data source name not found and no default driver specified

SQL state IM002 in SQLConnect in C:\Inetpub\wwwroot\allpro\apptlist1.php on line 22

+0

Avez-vous le pilote pour le type de DB? –

+0

Configurer la connexion odbc à sybase (avec succès) dans l'administrateur odbc, puis utiliser php odbc connect pour en tirer parti. – amrobinson

+0

peut-être du code? –

Répondre

0

Vous dites que doresult de $ 0, mais en fait le problème est que $ connect est 0, correct?

Il pourrait s'agir des protections du fichier .db.

La base de données est-elle déjà exécutée par un moteur de service ASA (qui définit server = winpest, dbname = windata) ou vous attendez-vous à ce que le script PHP démarre le moteur si nécessaire? Dans ce cas, j'ai souvent eu des problèmes autour du moteur de base de données (dbeng7) n'étant pas dans le chemin du système, ce qui empêche le pilote ODBC de démarrer la base de données du moteur à la demande.

+0

En fait, en utilisant le programme multi-utilisateur, dbsrv7.exe au lieu de dbeng7.exe. Voulez-vous dire que le programme 'dbserv7.exe' devrait être sur le chemin, pas seulement le répertoire dans lequel il se trouve? En outre, pour un problème d'autorisation, j'ai mis à jour le dossier dans lequel se trouve le fichier de base de données ou dois-je faire quelque chose avec les comptes d'utilisateurs? – amrobinson

+0

Non, comme d'habitude, c'est juste le nom du répertoire de dbsrv7.exe qui doit être dans PATH, pas "dbsrv7.exe" lui-même. – pascal

+0

J'ai revérifié le chemin, essayé la variable ENG, regardé les autorisations sur le dossier du fichier web ... ne fonctionne toujours pas. – amrobinson

Questions connexes