anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Problem mit update xyz set... https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=3360 |
Seite 1 von 1 |
Autor: | Taraen [ Mi 07 Feb, 2007 16:45 ] |
Betreff des Beitrags: | Problem mit update xyz set... |
Hallo! wenn $result Null ist, soll INSERT INTO ausgeführt werden. Sollte es aber einen Wert zurückliefern, soll der Datensatz per UPDATE aktualisiert werden... Allerdings funktioniert es nicht so, wie ich mir es vorgestellt hatte.... ![]() [php] $result = db_query("SELECT id,bio FROM longbio WHERE id ='$_GET[char]'"); $row = db_fetch_assoc($result); if($result==""){ $insert = "INSERT INTO longbio (id,bio) VALUES ('".$session[user][login]."','".$_POST[text]."')"; db_query($insert); }else{ $sql = "UPDATE longbio SET bio='".$_POST[text]."' WHERE id ='$_GET[char]'"; db_query($sql); } [/php] |
Autor: | Eliwood [ Mi 07 Feb, 2007 17:22 ] |
Betreff des Beitrags: | Re: Problem mit update xyz set... |
Taraen hat geschrieben: Hallo!
wenn $result Null ist, soll INSERT INTO ausgeführt werden. Sollte es aber einen Wert zurückliefern, soll der Datensatz per UPDATE aktualisiert werden... Allerdings funktioniert es nicht so, wie ich mir es vorgestellt hatte.... ![]() [php] #... [/php] "$result" enthält natürlich eine valide MySQL-Resource und ist deshalb garantiert nicht leer. Ein Beispiel, wie man das machst, unter anderem auch in meiner "Ausführlichen Biographie" zu finden für die 1.1.x. Übrigens achte bitte darauf, die Werte zuerst zu entschärfen, bevor du sie in den Query einbindest. [php]# Aus der Datenbank ein Satz holen... $result = db_query('SELECT id,bio FROM longbio WHERE id ="'.mysql_real_escape_string(stripslashes($_GET['char'])).'"'); if(db_num_rows($result) === 0) { # Kein Datensatz db_query('INSERT INTO `longbio` SET `id` = "'.mysql_real_escape_string(stripslashes($session['user']['login'])).'", `bio` = "'.mysql_real_escape_string(stripslashes($_POST['text'])).'"'); } else { # Ein oder mehrere Datensätze db_query('UPDATE `longbio` SET `bio` = "'.mysql_real_escape_string(stripslashes($_POST['text'])).'" WHERE `id` = "'.mysql_real_escape_string(stripslashes($_GET['char'])).'"'); }[/php] Alternativ, um einen Query zu sparen: [php]# Updaten db_query('UPDATE `longbio` SET `bio` = "'.mysql_real_escape_string(stripslashes($_POST['text'])).'" WHERE `id` = "'.mysql_real_escape_string(stripslashes($_GET['char'])).'"'); if(db_affected_rows() === 0) { # Kein aktualisierter Datensatz; Kein Datensatz vorhanden; Also erstelle mir einen db_query('INSERT INTO `longbio` SET `id` = "'.mysql_real_escape_string(stripslashes($session['user']['login'])).'", `bio` = "'.mysql_real_escape_string(stripslashes($_POST['text'])).'"'); }[/php] |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |