Als u zo eenvoudig zoekt en vervangt, maakt u de geserialiseerde gegevens onbruikbaar. Dit is wat u moet doen:
$old = 'https://www.google.com';
$new = 'https://www.someplace.com';
$search = 's:' . strlen($old) .':"' . $old . '"';
$replace = 's:' . strlen($new) .':"' . $new . '"';
$query = "UPDATE config SET array=REPLACE(array, '{$search}', '{$replace}');";
Vervang $old en $new met uw huidige en doel-URL's, voer het script uit en voer de gegenereerde $query uit .
Hier is een pure SQL-oplossing:
SET @search := 'https://www.original.com';
SET @replace := 'https://www.target.com';
UPDATE config SET array=REPLACE(array, CONCAT('s:', LENGTH(@search), ':"', @search, '"'), CONCAT('s:', LENGTH(@replace), ':"', @replace, '"'));
Merk op dat dit ELK voorkomen van de zoekreeks in uw geserialiseerde array zal vervangen. Als je een specifieke sleutel wilt vervangen, moet je specifieker zijn.