0

PHP を使用して、ODBC 接続を介して Sybase データベース (社内アプリケーションで既に使用されている) と通信する Web サイトをセットアップしました。これにより、現場のユーザーが社内データベースにアクセスできるようになりました。これは 2003 NT サーバー上にあり、すべて正常に動作しました。

次に、XP Pro マシンに同様のサイトをセットアップしました (今回は自分で)。Web サイトにはアクセスでき、PHP プログラミングは機能しますが、PHP ページはデータベースにアクセスできません。エラーは発生しませんphpinfo。2 つのサイト (動作しているサイトと動作していないサイト) を確認しましたが、何も思いつきませんでした。

ODBC を介したデータベースへの接続が機能しないことを確信しました。XP Pro の構成は 2003 NT マシンとは異なるはずですか? ODBC は両方のマシンで同じように設定されています。

<?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,'','');
?>

警告: odbc_connect() [function.odbc-connect]:

SQL エラー: [Microsoft][ODBC ドライバー マネージャー]

データ ソース名が見つからず、既定のドライバーが指定されていません

22 行目の C:\Inetpub\wwwroot\allpro\apptlist1.php の SQLConnect の SQL 状態 IM002

4

1 に答える 1

0

$doresult が 0 だとおっしゃっていますが、実は $connect が 0 なのが問題ですよね?

.db ファイルの保護である可能性があります。

データベースはすでに何らかの ASA サービス エンジン (server=winpest、dbname=windata を定義する) によって実行されていますか? それとも、必要に応じて PHP スクリプトがエンジンを起動することを期待していますか? その場合、データベース エンジン (dbeng7) がシステム パスにないという問題が頻繁に発生しました。これにより、ODBC ドライバーが要求に応じてエンジン データベースを開始できなくなります。

于 2009-11-04T06:27:53.280 に答える