Dynamische Datenbankbefehle erzeugen

From: Christoph (smail_at_incredibleweb.de)
Date: 11/28/03


Date: 28 Nov 2003 09:20:11 -0800

Ich habe folgendes Problem:
Ein Update-Befehl für Mysql soll dynamisch erzeugt werden.
Dazu benenne ich alle Variablen, die zum Eintrag geliefert werden
genauso wie die Spaltennamen in der SQL Tabelle.

Das Skript sieht stark vereinfacht so aus:
(In dieser Form macht es natürlich keinen Sinn so vorzugehen, das
Original ist wesentlich komplexer und größer...)

Es gibt in einer mysql Tabelle die Tabellenspalten
Name, Straße, Ort, id

Ein Formular liefert an das Skript
$Name
$Straße
$Ort
$id

Ich will einen SQL Updatebefehl erzeugen,
lese die SQL Feldnamen aus und schreibe

$update = "$Feldname[1]='$$Feldname[1]',";
$update .= "$Feldname[2]='$$Feldname[2]',";
$update .= "$Feldname[3]='$$Feldname[3]'";

Wobei Feldname[1] den Wert Name enthält,
$Feldname[2] den Wert Straße und
$Feldname[3] den Wert Ort

Die Query ist dann

MYSQL_QUERY( "UPDATE tabelle SET
$update
WHERE (id='$id')");
}

Als Ergebnis erhalte ich nicht die gewünschten Einträge
Fritz Rosenweg und Stuttgart
in die Tabelle, sondern die Einträge
$Name $Straße und $Ort

Das Problem liegt also beim Erzeugen der Variablen $update:
Name = "$$Name",

Würde ich den Updatebefehl ausschreiben, würde ich ja schreiben
Name = '$Name', usw...

Da ich den String "Name" aber durch auslesen des Spaltennamen erhalte,
muss ich es irgendwie anders hinbekommen.

Wer kann mir helfen??

Danke vielmals!

Christoph Breithack



Relevant Pages

  • Re: ADO.NET mehrere Tabellen-felder in 1 Form
    ... > Rsp. ... > Tabelle 2 etc. ... > Derzeit habe ich die Felder Name, ... > Ort muss in Beziehung stehen" Logo ref. ...
    (microsoft.public.de.german.entwickler.dotnet.datenbank)
  • Re: Relationen in ADO.NET
    ... > Tabelle 2 etc. ... > Derzeit habe ich die Felder Name, ... > Ort muss in Beziehung stehen" Logo ref. ... und das Programm muss dann die richtige Reihenfolge der Ablage, ...
    (microsoft.public.de.vb)
  • ADO.NET mehrere Tabellen-felder in 1 Form
    ... Tabelle 2 etc. ... Derzeit habe ich die Felder Name, ... dort Daten eingebe bekomme ich den Fehler "Ein Datensatz in Tabelle ... Ort muss in Beziehung stehen" Logo ref. ...
    (microsoft.public.de.german.entwickler.dotnet.datenbank)
  • Relationen in ADO.NET
    ... Tabelle 2 etc. ... Derzeit habe ich die Felder Name, ... dort Daten eingebe bekomme ich den Fehler "Ein Datensatz in Tabelle ... Ort muss in Beziehung stehen" Logo ref. ...
    (microsoft.public.de.vb)
  • Re: Generierung von Datenbanken
    ... Du kannst mittels SQL eine Datenbank erstellen. ... (NAME = Sales_dat, ... FILENAME = 'c:\program files\microsoft sql ...
    (microsoft.public.de.german.entwickler.dotnet.vb)