Zum Inhalt springen

Update anstatt Insert

Erstellt am 9. November 2008 · Noch keine Antworten

Tags: Frage

ÁndreMansfeld ·

Hallo Freunde,
habe folgende Aufgabe vor mir.
Möchte checken ob ein USER in meiner eigenen Extension schon angelegt wurde. Der User loggt sich also mit den Standardboardmitteln an und erhält eine USER ID. Mit der kann er sich dann mit einem Formular bei etwas anmelden. Das Form speichert dann seine USER ID nochmal ab (eigenes Feld in meiner eigenen Extension -> USERIDGS). Wenn der User dann nochmal etwas ausfüllt, müßte dann checken obs den USER schon in meiner EXTENSION gibt.
Dann müßte ich eben eine Weiche einbauen die so was macht wie
wenn USERIDGS schon vorhanden dann kein INSERT sondern nur UPDATE.
In mySQL/PHP gibts was wie: ON DUPLICATE KEY UPDATE
Gibts das auch in der Typo3 konformen Sprache? Oder wie kann ich das dranhängen.(Habs natürlich schon ohne Erfolg probiert)?
Mein Problem ist, dass ich zwar schon eine Weiche drinhabe also in der Art

// Gibts den USER schon in meiner EXTENSION mit einer useridgs?
function WEICHE(){
$validuser = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*','tx_points_main','useridgs=$GLOBALS["TSFE"]->fe_user->user["uid"]','','','');
$row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($validuser); 
if ($validuser){
$content='USER HAT SCHON EINE USERIDGS'; //$this->FORMULAR()
return $content;
}else{
$content='USERIDGS NOCH NICHT VORHANDEN';
return $content;
}
}

Für ein wahres oder nicht wahres Ergebnis setze ich $content dann entweder auf eine Funktion mit UPDATE oder INSERT. Das funktioniert auch, aber bei einem nicht registrierten USER erhalte ich dann die SQL Fehlermeldungen und die bekomme ich nicht weg (dummerweise über den gesamten Webauftritt) #paralyzed#

Also kurz und schmerzlos: Wie kann ich eine Abfrage machen in der überprüft wird, ob eine USERIDGS schon in meiner Tabelle enthalten ist und dann entweder oder ausführen.

Lieben Gruß
Andreas