0
 connect();
 $arr = mssql_fetch_assoc(mssql_query("SELECT Applications.ProductName,
        Applications.ProductVersion, Applications.ProductSize, 
        Applications.Description, Applications.ProductKey, Applications.ProductKeyID,
        Applications.AutomatedInstaller, Applications.AutomatedInstallerName,
        Applications.ISO, Applications.ISOName, Applications.Internet,
        Applications.InternetURL, Applications.DatePublished, Applications.LicenseID,
        Applications.InstallationGuide, Vendors.VendorName
FROM Applications
INNER JOIN Vendors ON Applications.VendorID = Vendors.VendorID
WHERE ApplicationID = ".$ApplicationID));

$query1 = mssql_query("SELECT Issues.AppID, Issues.KnownIssues
      FROM Issues 
      WHERE Issues.AppID=".$ApplicationID);   
$issues = mssql_fetch_assoc($query1);
$query2 = mssql_query("SELECT ApplicationInfo.AppID,
               ApplicationInfo.Support_Status, ApplicationInfo.UD_Training,
               ApplicationInfo.AtomicTraining, ApplicationInfo.VendorURL
   FROM  ApplicationInfo
   WHERE ApplicationInfo.AppID = ".$ApplicationID);
$row = mssql_fetch_assoc($query2);
function connect(){
 $connect =  mssql_connect(DBSERVER, DBO, DBPW) or 
        die("Unable to connect to server");
 $selected = mssql_select_db(DBNAME, $connect) or 
        die("Unable to connect to database");
 return $connect;
}

上記がコードです。最初の query/fetch_assoc は問題なく動作しますが、次の 2 つのクエリは失敗し、その理由がわかりません。これは、php から表示されるエラー ステートメントです。

警告: mssql_query() [function.mssql-query]: メッセージ: 無効なオブジェクト名 'Issues'。(重大度 16) /srv/www/htdocs/agreement.php の 47 行目

警告: mssql_query() [function.mssql-query]: 一般的な SQL Server エラー: 47 行目の /srv/www/htdocs/agreement.php の SQL Server (重大度 16) からのメッセージを確認してください 警告: mssql_query() [function. mssql-query]: /srv/www/htdocs/agreement.php の 47 行目でクエリが失敗しました

警告: mssql_fetch_assoc(): 指定された引数は、48 行目の /srv/www/htdocs/agreement.php の有効な MS SQL 結果リソースではありません

警告: mssql_query() [function.mssql-query]: メッセージ: オブジェクト名 'software.software_dbo.ApplicationInfo' が無効です。(重大度 16) /srv/www/htdocs/agreement.php の 51 行目

警告: mssql_query() [function.mssql-query]: 一般的な SQL Server エラー: 行 51 の /srv/www/htdocs/agreement.php の SQL Server (重大度 16) からのメッセージを確認してください

警告: mssql_query() [function.mssql-query]: 51 行目の /srv/www/htdocs/agreement.php でクエリが失敗しました

警告: mssql_fetch_assoc(): 指定された引数は、52 行目の /srv/www/htdocs/agreement.php の有効な MS SQL 結果リソースではありません

エラーは明らかに、クエリが実行されていないという事実に集中しています。私のデータベースには、Issues というテーブルと ApplicationInfo というテーブルがあるため、それらが無効なオブジェクトであると表示される理由がわかりません。

4

2 に答える 2

2

正しいデータベースまたはスキーマをクエリしていることを確認してください。

software.software_dbo.ApplicationInfo意味:

  • という名前のデータベースsoftware
  • という名前のスキーマsoftware_dbo-おそらくこれが問題です。おそらくdboSQL Server上にあります。
  • 名前付きのビュー/テーブルApplicationInfo

おそらくDBO、他の引数の中で、次のステートメントのの値を確認してください。$connect = mssql_connect(DBSERVER, DBO, DBPW)

于 2010-06-02T14:14:35.703 に答える
0

接続しているユーザーが、クエリしようとしているテーブルを使用する権限を持っていることを確認してください。問題のような縫い目は、テーブルが見つからないことです。

これを処理する最善の方法は、そのデータベース内のすべてのオブジェクトにユーザー権限を付与することです:

GRANT SELECT, INSERT, DELETE <any other permissions that user needs> ON `database`.`*` TO `user`@`localhost` IDENTIFIED BY 'password'
于 2010-06-02T14:06:52.323 に答える