![]() |
Datenbank: mysql • Version: 5 • Zugriff über: php
[mySQL] insert wenn noch nicht existent sonst update
Hallo,
eigentlich stehts eigentlich schon im titel.ich habe eine Tabelle mit einem Primärschlüssel (UserName=varchar).ich möchte diese Tabelle so beabeiten dass ein Datensatz geupdated wird, wenn er existiert und wenn nicht ein Insert durchgeführt wird. also prinzipiell sowas als einzelne Anweisung:
Code:
ich hab ein bisschen gegoogled und
$q="SELECT * FROM `linkliste_prefs` WHERE `UserName`='".$_POST["UserName"]."' LIMIT 1";
$query=$db->query($q); if ($query and ($query!=1)) { $num_rows=$db->num_rows($query); if ($num_rows) { $q="UPDATE `linkliste_prefs` SET `invisible_ids`='".$_POST["idlist"]."' WHERE `UserName`='".$_POST["UserName"]."' LIMIT 1"; }else { $q="INSERT INTO `linkliste_prefs` (`UserName`,`invisible_ids`,`invisible_cats`) VALUES ('".$_POST["UserName"]."','".$_POST["idlist"]."','".$_POST["catlist"]."')"; } $query=$db->query($q); } ![]() ich habe das u.a. so versucht:
SQL-Code:
als Fehlermeldung gibt mir mysql folgendes zurück:
INSERT INTO `linkliste_prefs` ( `UserName` , `invisible_ids` , `invisible_cats` )
VALUES ( 'blubb', '2', '3' ) ON DUPLICATE KEY UPDATE ( `invisible_ids` = '2', `invisible_cats` = '3' )
Code:
ich bin halt von der normalen UPDATE-Syntax ausgegangen...vielleicht kennt sich damit jemand aus und kann mir sagen, was genau falsch ist.
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(`invisible_ids`='2',`invisible_cats`='3')' at line 1
Gruß Frank |
Re: [mySQL] insert wenn noch nicht existent sonst update
hoi,
ist invisible_ids + invisible_cats als varchar[] o.ä. deklariert ? falls nicht, versuch
SQL-Code:
cya
INSERT INTO linkliste_prefs (UserName,invisible_ids,invisible_cats)
VALUES ('blubb', 2, 3) ON DUPLICATE KEY UPDATE (invisible_ids = 2, invisible_cats = 3 ) ; |
Re: [mySQL] insert wenn noch nicht existent sonst update
alle 3 Spalten sind varchars :)
Gruß Frank |
Re: [mySQL] insert wenn noch nicht existent sonst update
Moin, einfach mal die Klammern nach dem KEY UPDATE weggelassen?
Jedenfalls stehen in der ![]() Bis denn Bommel |
Re: [mySQL] insert wenn noch nicht existent sonst update
oh, danke, so funktioniert es wirklich
es waren echt die blöden klammern :) Gruß Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz