Autor | Zpráva | ||
---|---|---|---|
ts_istudio Profil |
#1 · Zasláno: 24. 9. 2013, 11:09:23
Narazil jsem na tuto syntaxi INSERTu:
INSERT INTO table SET a=1, b=2 Je to v mysql běžně podporované? Má to tu výhodu, že to umožní použít jeden zápis pro insert i update. $sql = ($id>0?"UPDATE ":"INSERT INTO ").' is_zakazky SET nazev="'.mysql_real_escape_string($_POST['nazev']).'", mena='.(int)($_POST['mena']) .. desítky dalších položek if (!$id==0) { $sql .= ' WHERE id='.(int)$id; } |
||
Joker Profil |
ts_istudio:
Je to standardní syntaxe. „Má to tu výhodu, že to umožní použít jeden zápis pro insert i update.“ V jakém smyslu? Ale k tomu skriptu, to stejné umí přímo MySQL dotazem INSERT … ON DUPLICATE KEY UPDATE …
|
||
ts_istudio Profil |
#3 · Zasláno: 24. 9. 2013, 12:07:15
Joker:
„Syntaxe s VALUES je taky stejná pro INSERT i UPDATE, není?“ Já to znám a roky používám takto: INSERT INTO table_name (column1,column2,column3) VALUES (value1,value2,value3), (value1,value2,value3) UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value; Výše uvedené mě vždycky nutilo k tomu, psát extra kód pro vložení a pro update. Že existuje ON DUPLICATE KEY UPDATE, mi známo je, ale nějak se ještě nestalo, že bych to zkusil dostat do krve. Je pravda, že by to bylo nejelegantnější řešení. |
||
Joker Profil |
#4 · Zasláno: 24. 9. 2013, 12:32:50
ts_istudio:
To s VALUES škrtám, je to nesmysl, jsem si to popletl. |
||
Časová prodleva: 11 let
|
0