Om du helt enkelt söker och ersätter så, kommer du att göra den serialiserade datan osynlig. Så här behöver du göra:
$old = 'http://www.google.com';
$new = 'http://www.someplace.com';
$search = 's:' . strlen($old) .':"' . $old . '"';
$replace = 's:' . strlen($new) .':"' . $new . '"';
$query = "UPDATE config SET array=REPLACE(array, '{$search}', '{$replace}');";
Ersätt $old
och $new
med din nuvarande och mål-url, kör skriptet och kör den genererade $query
.
Här är en ren SQL-lösning:
SET @search := 'http://www.original.com';
SET @replace := 'http://www.target.com';
UPDATE config SET array=REPLACE(array, CONCAT('s:', LENGTH(@search), ':"', @search, '"'), CONCAT('s:', LENGTH(@replace), ':"', @replace, '"'));
Observera att detta kommer att ersätta VARJE förekomst av söksträngen i din serialiserade array. Om du funderar på att ersätta en specifik nyckel måste du vara mer, va, specifik.