Autor | Zpráva | ||
---|---|---|---|
SteveO Profil * |
#1 · Zasláno: 28. 3. 2017, 16:44:57
Zdravím, potřeboval jsem v DB hromadně nahradit text "A&B" za "A/B". Stáhnul jsem si tedy dump a provedl search/replace.
Až pak jsem ale zjistil, že databáze obsahuje serializované texty. Ale zdá se, že nahrazením nedošlo k žádnému problému. Znamená to, že je možné v serializovaných řetězcích nahrazovat části, aniž by to skončilo (mojí) smrtí, pokud má stará část a nová část stejný počet znaků? Díky |
||
Keeehi Profil |
#2 · Zasláno: 28. 3. 2017, 21:34:01
SteveO:
Tak pokud se trefíš na správné místo tak ano. Mohl by ses ale taky třeba trefit do klíče pole nebo do objektu a to už by problém být mohl. |
||
SteveO Profil * |
#3 · Zasláno: 29. 3. 2017, 09:22:05
Trefil jsem se určitě jen do hodnot.
Takže teda lze říct, že: search&replace - fiat -> audi = serializované řetězce zůstanou v pořádku search&replace - fiat -> honda = serializované řetězce jsou v háji ? Díky. |
||
Joker Profil |
#4 · Zasláno: 29. 3. 2017, 14:42:12
Záleží na způsobu serializace. Je jich víc.
Obecně se nedá spolehnout, že samotná stejná délka řetězců zajistí, že se serializovaná data nepoškodí (už proto, že se ten řetězec může vyskytnout na neočekávaných místech). Je potřeba si to ověřit pro každý jednotlivý případ. |
||
milous Profil |
#5 · Zasláno: 31. 3. 2017, 20:08:43
Pokud je to serializováno pomocí PHP funkce, tak si všimni toho rozdílu:
a:1:{i:0;s:5:"honda";} a:1:{i:0;s:4:"audi";} |
||
Časová prodleva: 7 let
|
0