タイトルが示すように、PHP スクリプトから MSSQL への接続に問題があります。
セットアップ:-
- PHP は Apache Linux サーバー上で実行されています。
- Microsoft SQL Server 2008 は XP マシン上にあります。
- MSSQL Server でリモート接続を有効にしました。
- データベース bggs は存在します。
- データベースが実行されています (緑色の矢印が表示されます)。
- XP マシンにはファイアウォールがありません。
デバッグに関する質問がある場合は、遠慮なく質問してください。
次のテストスクリプトを使用しています。
<?php
include('adodb5/adodb.inc.php');
$db =& ADONewConnection('odbc_mssql');
$db->debug = true;
$dsn = "Driver={SQL Server};Server=ozmodiar;Database=bggs;";
$db->Connect($dsn,'user','password');
$rs = $db->Execute('select * from admin_users');
print "<pre>";
print_r($rs->GetRows());
print "</pre>";
?>
次の結果を取得します。
警告: odbc_connect() [function.odbc-connect]: SQL エラー: [unixODBC][Driver Manager] Data source name not found, and no default driver specified, SQL state IM002 in SQLConnect in /mnt/filestore/vhost/bggs/ hr_database/Dev/includes/adodb5/drivers/adodb-odbc.inc.php 60 行目 (odbc_mssql): SET CONCAT_NULL_YIELDS_NULL OFF
警告: odbc_exec(): 指定された引数は /mnt/filestore/vhost 内の有効な ODBC リンク リソースではありません/bggs/hr_database/Dev/includes/adodb5/drivers/adodb-odbc.inc.php 行 530 IM002: [unixODBC][Driver Manager]Data source name not found, and no default driver specified
ADOConnection._Execute(SET CONCAT_NULL_YIELDS_NULL OFF, false) % 1017 行目、ファイル: adodb.inc.php ADOConnection.Execute(SET CONCAT_NULL_YIELDS_NULL OFF) % 62 行目、ファイル: adodb-odbc.inc.php ADODB_odbc._connect(Driver={SQL Server};Server=192.168.70.130;Database=bggs;, sa, knd121, ) % 524 行目、ファイル: adodb.inc.php ADOConnection.Connect(Driver={SQL Server};Server=192.168.70.130;Database=bggs ;, sa, knd121) % 9 行目、ファイル: test_db.php
Driver={SQL Server};Server=192.168.70.130;Database=bggs;: [unixODBC][Driver Manager]データ ソース名が見つからず、既定のドライバーが指定されていません (odbc_mssql): select * from admin_users
警告: odbc_exec():指定された引数は、/mnt/filestore/vhost/bggs/hr_database/Dev/includes/adodb5/drivers/adodb-odbc.inc.php 行 530 の有効な ODBC-Link リソースではありません IM002: [unixODBC][Driver Manager]Dataソース名が見つからず、デフォルトのドライバーが指定されていません
ADOConnection._Execute(select * from admin_users, false) % 1017 行目、ファイル: adodb.inc.php ADOConnection.Execute(select * from admin_users) % 10 行目、ファイル: test_db.php
致命的なエラー: 12 行目の /mnt/filestore/vhost/bggs/hr_database/Dev/includes/test_db.php の非オブジェクトに対するメンバー関数 GetRows() の呼び出し