15. april 2007 - 18:20
Der er
9 kommentarer og 1 løsning
opdater tabel i db, eller indsæt ny hvis id ikke findes
Jeg mangler lidt hjælp til at ændre et query fra blot at kunne opdatere en tabel, til også at kunne indsætte nye rækker hvis "mitid" ikke eksisterer. Koden ser pt. således ud: function updateSubscribermitid($subscriber, &$subscriberId) { global $database; mosMakeHtmlSafe($subscriber); $erro = new xerr( __FILE__ , __FUNCTION__ , __CLASS__ ); if ($subscriber->mitid >0 ) { $query = "UPDATE `#__acajoom_subscribers` SET ". " `name` = '$subscriber->name' , " . " `email` = '$subscriber->email' , " . " `receive_html` = $subscriber->receive_html , " . " `confirmed` = $subscriber->confirmed , " . " `timezone` = '$subscriber->timezone' , " . " `language_iso` = '$subscriber->language_iso' , " . " `blacklist` = $subscriber->blacklist , " . " `params` = '$subscriber->params' " . " WHERE `mitid` = $subscriber->mitid "; $database->setQuery($query); $database->query(); $erro->err = $database->getErrorMsg(); } else { $subscriber->subscribe_date = acajoom::getNow(); $erro->ck = subscribers::insertSubscriber($subscriber, $subscriberId); $erro->Eck( __LINE__ , '7625' ); } return $erro->R(); }
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
15. april 2007 - 22:05
#2
Det lyder som en god ide, men er lidt i tvivl om hvordan mit query så skal stykkes sammen. Har du et bud på det?
15. april 2007 - 22:13
#3
Æv, desværre kører serveren mysql 3.23.49 så ovenstående er ikke en mulighed. Ærgeligt.
15. april 2007 - 22:15
#4
Dette burde faktisk gøre det: mosMakeHtmlSafe($subscriber); $erro = new xerr( __FILE__ , __FUNCTION__ , __CLASS__ ); if ($subscriber->mitid >0 ) { $query = "INSERT INTO `#__acajoom_subscribers` (mitid,name,email,receive_html,confirmed,timezone,language_iso,blacklist,params) VALUES('','$subscriber->name','$subscriber->email','$subscriber->receive_html','$subscriber->confirmed','$subscriber->timezone','$subscriber->language_iso','$subscriber->blacklist','$subscriber->params') ON DUPLICATE KEY UPDATE" . " `name` = '$subscriber->name' , " . " `email` = '$subscriber->email' , " . " `receive_html` = $subscriber->receive_html , " . " `confirmed` = $subscriber->confirmed , " . " `timezone` = '$subscriber->timezone' , " . " `language_iso` = '$subscriber->language_iso' , " . " `blacklist` = $subscriber->blacklist , " . " `params` = '$subscriber->params' "; $database->setQuery($query); $database->query(); $erro->err = $database->getErrorMsg();
15. april 2007 - 22:17
#6
Den vil opdatere en række hvis den findes i forvejen, eller vil den blive indsat.
15. april 2007 - 22:36
#7
Er ked af du ikke fit set min kommentar med DB version :o( Men vil det sige at jeg blot kan erstatte min UPDATE med REPLACE INTO i mit query?
15. april 2007 - 23:28
#8
Jeg har fået det til at spille - jeg takker for din tid og energi :) Smider du et svar?
16. april 2007 - 08:04
#9
Svar!
16. april 2007 - 10:00
#10
Takker for point.
Vi tilbyder markedets bedste kurser inden for webudvikling