Heim > Datenbank > MySQL-Tutorial > Kann mit String-Variablen dynamisch auf MySQL-Felder zugegriffen werden?

Kann mit String-Variablen dynamisch auf MySQL-Felder zugegriffen werden?

Patricia Arquette
Freigeben: 2024-11-19 08:23:02
Original
917 Leute haben es durchsucht

Can MySQL Fields Be Accessed Dynamically Using String Variables?

Dynamischer Zugriff auf MySQL-Felder über Variable

Problem:

Kann man programmgesteuert auf ein MySQL-Feld über den in einem gespeicherten Namen zugreifen? String-Variable, insbesondere zum dynamischen Aktualisieren von Feldwerten?

Beispielanwendungsfall:

SET fieldname = NEW.`name`;
UPDATE table SET fieldname = 1 ;
Nach dem Login kopieren

Antwort:

Die Die Möglichkeit, dynamisch über Variablen auf MySQL-Felder zuzugreifen, hängt vom Kontext ab.

Externe Variablen:

Wenn der Feldname als Variable in einer externen Anwendung gespeichert wird (z. B. PHP) ist das Erstellen einer gültigen MySQL-Anweisung möglich.

Interne Variablen:

Wenn der Feldname jedoch als Wert in einer MySQL-Tabelle gespeichert ist, ist der Zugriff darauf möglich Die Verwendung der Standard-SQL-Syntax ist nicht möglich. Dies liegt daran, dass MySQL keine Auswertungsfunktion (eval) hat.

Technik vorbereiteter Anweisungen:

Um dieses Problem zu umgehen, kann man vorbereitete Anweisungen verwenden, obwohl dies der Fall ist Wird als Hacky-Lösung angesehen. So kann es implementiert werden:

SELECT columnname from queries into @colname;
SET @table = 'mytable';
SET @s = CONCAT('SELECT ',@colname,' FROM ', @table);

PREPARE stmt FROM @s;
EXECUTE stmt;
Nach dem Login kopieren

Bei dieser Technik wird der Spaltenname einer Tabelle in einer Benutzervariablen (@colname) gespeichert, eine dynamische SQL-Anweisung verkettet, die Anweisung vorbereitet und ausgeführt.

Das obige ist der detaillierte Inhalt vonKann mit String-Variablen dynamisch auf MySQL-Felder zugegriffen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage