2016-05-24 10 views
0

Unten ist die Abfrage, die ich verwendet habe, um mehrere Spalten aus einer meiner Tabellen auszuwählen. Ich bekomme die Spaltennamen vom Benutzer aus der Tabelle auswählen. Wenn der Benutzer einen falschen Spaltennamen angibt, wird ein unbekannter Spaltenfehler angezeigt. Wie kann ich prüfen, ob diese Spalte in der Tabelle vor der Auswahl vorhanden ist?Wie überprüft man die Spalte existiert oder nicht, bevor diese Spalte aus der Tabelle ausgewählt wird

SELECT `address_id`,`address_firstname`,` afserfw` 
FROM `patsm_addresstable` 
WHERE `address_id`='28' 
LIMIT 0, 25 

Dies würde den folgenden Fehler geben:

#1054 - Unknown column ' afserfw' in 'field list' 
+0

Warum definiert ein Benutzer, welche Spalten ausgewählt werden sollen? Was ist der Zweck dieser Abfrage? Alternativ geben Sie dem Benutzer eine Auswahl von Spalten, die existieren – Matt

+0

'Spalten aus Tabellenname anzeigen;' wird Ihnen eine Liste von Spalten geben. Sie müssen prüfen, bevor Sie die Abfrage senden (oder nur die Abfrage ausführen und diesen Fehler zurückgeben, es hat möglicherweise den gleichen Effekt wie die Feldliste zuerst zu überprüfen und dann einen manuellen Fehler wie "Unbekannte Spalte" afserfw "selbst zurückzugeben.) Sie können nicht Überprüfen Sie innerhalb einer Abfrage, ob eine Spalte, die die Abfrage verwenden möchte, existiert (z. B. können Sie nicht verwenden 'wenn existiert Spalte afserfw dann afserfw else null ') – Solarflare

+0

Hi matt, Es sollte benutzerdefiniert sein, da der Benutzer benutzerdefinierte Felder erstellen kann. für meine Anforderung möchte ich Benutzer Handynummer, um einige Benachrichtigung senden. Keine Notwendigkeit, alle Felder in Dropdown anzuzeigen und mobile Felder haben keine bestimmte Identifikation, um sie in Ruhe zu bekommen. Danke – subramanian

Antwort

1

Diese Abfrage wird Ihnen eine Liste von Spalten in einer bestimmten Tabelle mit ihren Datentypen.

Sie können beim Erstellen einer Abfrage für eine Tabelle anhand dieser Ergebnismenge feststellen, ob eine bestimmte Spalte vorhanden ist.

Aber Vorsicht: Eine Web-Anwendung, die es Endbenutzern erlaubt, Ihnen Spaltennamen zu geben, ist nur schwer vor dem Eindringen von Cybercrooks zu schützen.

Verwandte Themen