Neden benim SQL Server sorgu başarısız oluyor?

2 Cevap php
 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;
}

Yukarıdaki kodudur. İlk sorgu / fetch_assoc mükemmel çalışıyor, ancak önümüzdeki 2 sorguları başarısız ve ben nedenini anlamaya olamaz. İşte php kadar gösterir hata ifadedir:

Uyarı: mssql_query () [function.mssql-sorgu]: iletisi: Geçersiz nesne adı 'Sorunlar'. Hattında 47 / srv / www / htdocs / agreement.php içinde (şiddeti 16)

Warning: mssql_query() [function.mssql-query]: General SQL Server error: Check messages from the SQL Server (severity 16) in /srv/www/htdocs/agreement.php on line 47 Warning: mssql_query() [function.mssql-query]: Query failed in /srv/www/htdocs/agreement.php on line 47

Uyarı: mssql_fetch_assoc (): Verilen argüman hattı 48 / srv / www / htdocs / agreement.php geçerli MS SQL-sonuç kaynak değil

Uyarı: mssql_query () [function.mssql-sorgu]: iletisi: Geçersiz nesne adı 'software.software_dbo.ApplicationInfo'. Hattında 51 / srv / www / htdocs / agreement.php içinde (şiddeti 16)

Uyarı: mssql_query () [function.mssql-sorgu]: Genel SQL Server hata: on line / srv / www / htdocs / agreement.php de SQL Server (şiddeti 16) iletileri sayısı 51

Uyarı: mssql_query () [function.mssql-sorgu]: Sorgu hattında 51 / srv / www / htdocs / agreement.php başarısız

Uyarı: mssql_fetch_assoc (): verilen argüman on line 52 / srv / www / htdocs / agreement.php geçerli MS SQL-sonuç kaynak değil

Hata açık bir sorgu yürütme olmadığı gerçeği etrafında merkezleri. Benim veritabanında ben Sorunlar adında bir tablo var ve bu da geçersiz nesneler olduğunu bana neden ApplicationInfo adında bir tablo öylesine emin değilim.

2 Cevap

Eğer doğru veritabanı veya şema sorgulama olduğunuzu kontrol edin.

software.software_dbo.ApplicationInfo şu anlama gelir:

  • adlı bir veritabanı software
  • adlı software_dbo, şema - likely this is the problem. Olasılıkla SQL Server dbo olduğunu.
  • ApplicationInfo adında bir görünüm / table

Belki kontrol ne DBO değeri, diğer argümanlar arasında, bu açıklamada şu: $connect = mssql_connect(DBSERVER, DBO, DBPW)

Eğer ile bağlantı kullanıcı sorgulamak için çalışıyoruz tabloları kullanma iznine sahip olduğunu kontrol edin. Sorunu gibi dikişler tablo bulunamıyor olmasıdır.

Bu işlemek için en iyi yolu, bu veritabanındaki tüm nesneler için kullanıcı permssions vermek olacaktır:

GRANT SELECT, INSERT, DELETE <any other permissions that user needs> ON `database`.`*` TO `user`@`localhost` IDENTIFIED BY 'password'