Mal wieder SQL

Datschi

Reinette de Champagne
Registriert
08.11.04
Beiträge
415
Hi ihr fleißigen Helfer.
Ich hätte da mal ne Frage zu SQL-Update-Strings. Und zwar, ob es möglich ist, Einträge zu aktualisieren, wie mit INSERT. Also zuerst die Felder definieren und dann nach VALUES die Werte hintereinanderweg zu posten. Geht das?
Soll so aussehen:
Code:
UPDATE `ger_sights` (`icon`,`icon_selected`,`icon_t1`,`icon_t2`,`icon_t3`,`icon_t4`,`icon_t5`) VALUES ('altes_museum_a.png','altenationalgalerie_p.png','berliner_dom_a.png','brandenburger_tor_a.png','bundeskanzleramt_p.png','checkpoint_charlie_p.png',NULL) WHERE `s_id` = 6;

oder kann ich anstatt UPDATE auch INSERT INTO benutzen???

Bin für jede Hilfe dankbar!

Der Datschi
 

duderino

Prinzenapfel
Registriert
26.01.06
Beiträge
555
Weiß zwar nicht genau was du meinst aber vielleicht ist REPLACE was für dich. Diese Funktion erstellt einen neuen Datensatz wenn der vordefinierte nicht bestimmt ist. Wenn der Satz existiert wird er nur aktualisierst.
 

.holger

Borowitzky
Registriert
13.09.04
Beiträge
8.970
UPDATE tabelle SET werte WHERE identifikation;

Beispiel:

UPDATE
News
SET
Name = 'Moin',
Datum = NOW()
WHERE
ID = '5';
 

Datschi

Reinette de Champagne
Registriert
08.11.04
Beiträge
415
Ja, das es so geht, weiß ich ;)
Dachte aber, ich könnte mir das zusammensetzen des Strings mit Schleifen und so sparen ^^, bzw. neu schreiben.
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.057
PostgreSQL und einige andere DBMS bietet
Code:
PGresult *PQexecParams(PGconn *conn,
                       const char *command,
                       int nParams,
                       const Oid *paramTypes,
                       const char * const *paramValues,
                       const int *paramLengths,
                       const int *paramFormats,
                       int resultFormat);
Bzw. in PHP sieht dann das so aus
Code:
pg_query_params(resource $connection, string $query, array $params)
Der SQL-String sieht dann wie folgt aus.
Code:
UPDATE`ger_sights` SET icon=$1, icon_selected=$2, icon_t1=$3, icon_t2=$4, icon_t3=$5, icon_t4=$6, icon_t5=$7 WHERE s_id=6
Die Werte werden dann in einem Array übergeben. Du könntest diese Funktion nachbauen und so nebenbei einfach gegen SQL-Injections absichern.