そのように検索して置き換えるだけでは、シリアル化されたデータを使用できなくなります。行う必要があることは次のとおりです。
$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}');";
$old
を置き換えます および$new
現在のURLとターゲットURLを使用して、スクリプトを実行し、生成された$query
を実行します。 。
純粋なSQLソリューションは次のとおりです。
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, '"'));
これにより、シリアル化された配列で出現するすべての検索文字列が置き換えられることに注意してください。特定のキーを置き換える場合は、もっと具体的にする必要があります。