Warum ist mein SQL Server-Abfrage-Fehler?
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;
}
Oben ist der code. Die erste Abfrage/fetch_assoc funktioniert perfekt in Ordnung, allerdings die nächsten 2 Abfragen fehl, und ich kann nicht herausfinden, warum. Hier ist die error-Anweisung, die zeigt sich von php:
Warning: mssql_query() [function.mssql-query]: message: Invalid object name 'Fragen'. (severity 16) in /srv/www/htdocs/agreement.php auf der Linie 47
Warning: mssql_query() [function.mssql-query]: Allgemeine SQL Server-Fehler: Nachrichten von 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 auf der Linie 47Achtung: mssql_fetch_assoc(): geliefert argument ist keine gültige MS SQL-Ergebnis-resource in /srv/www/htdocs/agreement.php in Zeile 48
Warning: mssql_query() [function.mssql-query]: message: Invalid object name ' - software.software_dbo.ApplicationInfo'. (severity 16) in /srv/www/htdocs/agreement.php auf der Linie 51
Warning: mssql_query() [function.mssql-query]: Allgemeine SQL Server-Fehler: Nachrichten von SQL Server (severity 16) in /srv/www/htdocs/agreement.php auf der Linie 51
Warning: mssql_query() [function.mssql-query]: Query failed in /srv/www/htdocs/agreement.php auf der Linie 51
Achtung: mssql_fetch_assoc(): geliefert argument ist keine gültige MS SQL-Ergebnis-resource in /srv/www/htdocs/agreement.php auf der Linie 52
Den Fehler offenbar dreht sich um die Tatsache, dass die Abfrage nicht ausführen. In meiner Datenbank habe ich eine Tabelle mit dem Namen Probleme und eine Tabelle namens ApplicationInfo also ich bin nicht sicher, warum es ist, erzählen mir, dass Sie ungültige Objekte.
- Diese Fehler und versuchen, Ihnen zu sagen, dass bestimmte Tabellen/Felder, auf die Sie verweisen in Ihrer Anfrage sind, entweder ungültig oder nicht vorhanden ist. Überprüfen Sie Typ-o ist.
ApplicationInfo
unterscheidet sich vonsoftware.software_dbo.ApplicationInfo
- Die Abfragen sehen ok aus (machen bestimmte Annahmen über die Struktur der Datenbank). Arbeiten Sie, wenn Sie Sie ausführen, die direkt aus einem SSMS Abfrage-Fenster? Wenn dem so ist, dann ist es nicht die Abfragen selbst.
- Jede Abfrage funktioniert in meinem Squirrel SQL Client
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie, ob Sie die Abfrage die richtigen Datenbank-oder schema.
software.software_dbo.ApplicationInfo
bedeutet:software
software_dbo
- wahrscheinlich ist dies das problem. Wahrscheinlich istdbo
auf dem SQL-Server.ApplicationInfo
Vielleicht überprüfen, was der Wert von
DBO
unter den anderen Argumenten, ist in dieser Aussage:$connect = mssql_connect(DBSERVER, DBO, DBPW)
Überprüfen, um zu sehen, dass der Benutzer Sie sich verbinden, hat die Genehmigung zur Verwendung der Tabellen, die Sie versuchen, die Abfrage. Nähte wie das Problem ist, dass die Tabellen nicht gefunden werden kann.
Der beste Weg, dies zu behandeln wäre, und gewähren Sie dem Benutzer permssions auf alle Objekte in dieser Datenbank: