Autor | Zpráva | ||
---|---|---|---|
avaster Profil |
#1 · Zasláno: 13. 4. 2009, 17:45:54
existuje nejaka funkcia/sposob ako zistit v php hodnotu nasledovneho ID, kde ID je definovane pri vytvarani mysql tabulky takto:
ID INT(11) AUTO_INCREMENT |
||
Nox Profil |
#2 · Zasláno: 13. 4. 2009, 18:10:49
$table = mysql_fetch_assoc (mysql_query("SHOW TABLE STATUS LIKE 'tabulka'")); $dalsi = $table["Auto_increment"]; |
||
AM_ Profil |
#3 · Zasláno: 13. 4. 2009, 20:48:24
možná by ti život usnadnila SQL funkce last_insert_id(), potažmo PHP alternativa mysql_insert_id() - vrátí ID posledního vloženého řádku - tj hodí se v případě, že vkládáš řádek a potřebuješ znát jeho ID, pokud je to tvůj případ.
Tyhle věci je obvykle dobré kombinovat se zamykáním tabulek pomocí LOCK nebo technik COMMIT, aby ti mezitím např. stejný skript spuštěný jiným uživatelem nevložil další záznam, který by last_insert_id změnil. |
||
TomášK Profil |
#4 · Zasláno: 13. 4. 2009, 21:46:08 · Upravil/a: TomášK
AM_
„Tyhle věci je obvykle dobré kombinovat se zamykáním tabulek pomocí LOCK nebo technik COMMIT, aby ti mezitím např. stejný skript spuštěný jiným uživatelem nevložil další záznam, který by last_insert_id změnil.“ Dobrý zvyk to určitě je, ale nutné to není - hodnota se ukládá pro každé spojení s databází, tedy se nezmění když tam v průběhu tvého skriptu někdo další přidá záznam. Pokud skript vytváří své spojení s databází, bude to fungovat bezpečně. "Using LAST_INSERT_ID() and AUTO_INCREMENT columns simultaneously from multiple clients is perfectly valid. Each client will receive the last inserted ID for the last statement that client executed. " |
||
AM_ Profil |
#5 · Zasláno: 13. 4. 2009, 23:00:42
TomášK
Ok, to jsem nevěděl, to docela usnadní život :) |
||
Časová prodleva: 15 let
|
0